{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:02.579144Z",
     "start_time": "2018-02-07T01:23:00.344744Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n"
     ]
    }
   ],
   "source": [
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import argparse\n",
    "import sys\n",
    "\n",
    "import tensorflow as tf\n",
    "import seaborn as sns\n",
    "\n",
    "from tensorflow.examples.tutorials.mnist import input_data\n",
    "\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:03.286592Z",
     "start_time": "2018-02-07T01:23:02.582090Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 训练类\n",
    "class MnistDataTrain():\n",
    "    def __init__(self):\n",
    "        # 初始化数据\n",
    "        self.learning_rate = 0.5\n",
    "        self.training_steps = 3000\n",
    "        self.batch_size = 100\n",
    "        self.display_step = 100\n",
    "        \n",
    "        self.learning_rate_base = 0.8\n",
    "        self.moving_average_decay = 0.99\n",
    "        self.learning_rate_decay = 0.99\n",
    "        self.global_step = tf.Variable(0, trainable=False)\n",
    "        \n",
    "        self.regularizer_rate = 0.0001\n",
    "        \n",
    "    def train(self,x,y,pred,data,decay_learning_rate=False,decay_moving_average=False,regularizer=False):\n",
    "        # x 输入\n",
    "        # y 输出\n",
    "        # pred 预测\n",
    "        # data 数据\n",
    "        # decay_learning_rate 是否开起指数衰减学习率\n",
    "        # decay_moving_average 是否开起滑动平均模型\n",
    "        # regularizer 是否开启正则化\n",
    "        # 训练数据\n",
    "        cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred),reduction_indices=[1]))\n",
    "        # 定义损失函数、学习率、滑动平均操作以及训练过程。\n",
    "        if (regularizer == True):\n",
    "            cost += tf.add_n(tf.get_collection('losses'))\n",
    "\n",
    "        if (decay_moving_average == True):\n",
    "            variable_averages = tf.train.ExponentialMovingAverage(self.moving_average_decay, self.global_step)\n",
    "            variables_averages_op = variable_averages.apply(tf.trainable_variables())\n",
    "            \n",
    "        if (decay_learning_rate == True):\n",
    "            learning_rate = tf.train.exponential_decay(self.learning_rate_base,\n",
    "                                                       self.global_step,\n",
    "                                                       data.train.num_examples / self.batch_size,\n",
    "                                                       self.learning_rate_decay,\n",
    "                                                       staircase=True)\n",
    "        # 梯度下降\n",
    "        train_op = tf.train.GradientDescentOptimizer(self.learning_rate).minimize(cost,global_step=self.global_step)\n",
    "        \n",
    "        if (decay_moving_average == True):\n",
    "            with tf.control_dependencies([train_op, variables_averages_op]):\n",
    "                train_op = tf.no_op(name='train')\n",
    "        \n",
    "        \n",
    "        correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(pred, 1))\n",
    "        \n",
    "        accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n",
    "        \n",
    "        plt.figure(figsize=(10,8))\n",
    "        with tf.Session() as sess:\n",
    "            sess.run(tf.global_variables_initializer())\n",
    "            validate_feed = {x: data.validation.images,y: data.validation.labels}\n",
    "            test_feed = {x: data.test.images,y: data.test.labels}  \n",
    "            \n",
    "            accuracy_s = []\n",
    "            cost_s = []\n",
    "            learning_rate_s = []\n",
    "            for i in range(self.training_steps):\n",
    "                batch_xs, batch_ys = data.train.next_batch(self.batch_size)\n",
    "                sess.run(train_op, feed_dict={x: batch_xs, y: batch_ys})\n",
    "                \n",
    "                if i % self.display_step == 0 and i != 0:\n",
    "                    if (decay_learning_rate != True):\n",
    "                        # 校验集的正确率\n",
    "                        validate_acc,validate_cost = sess.run([accuracy,cost], feed_dict=validate_feed)\n",
    "                        print(\"After %d training step(s), validation accuracy using average model is %g \"\n",
    "                          % (i, validate_acc))\n",
    "                    else:\n",
    "                        validate_acc,validate_cost,validate_learning_rate = sess.run([accuracy,cost,learning_rate], feed_dict=validate_feed)\n",
    "                        print(\"After %d training step(s), validation accuracy using average model is %g learning rate is %g\"\n",
    "                          % (i, validate_acc,validate_learning_rate))\n",
    "                        learning_rate_s.append(validate_learning_rate)\n",
    "                    accuracy_s.append(validate_acc)\n",
    "                    cost_s.append(validate_cost)\n",
    "            \n",
    "            # 绘出正确率和损失\n",
    "            if (decay_learning_rate != True):\n",
    "                ax1 = plt.subplot(211)\n",
    "                ax1.set_ylabel(\"Accuracy\")\n",
    "                ax2 = plt.subplot(212)\n",
    "                ax2.set_ylabel(\"Cost\")\n",
    "                ax2.set_xlabel(\"Display Step\")\n",
    "                plt.setp(ax1.get_xticklabels(), visible=False) \n",
    "                ax1.plot(np.arange(self.training_steps/self.display_step - 1), accuracy_s, 'mo')\n",
    "                ax2.plot(np.arange(self.training_steps/self.display_step - 1), cost_s, 'co')\n",
    "                plt.suptitle(\"learning rate=%f, training step=%i\" % (self.learning_rate, self.training_steps))\n",
    "                plt.show()\n",
    "            else:\n",
    "                ax1 = plt.subplot(311)\n",
    "                ax1.set_ylabel(\"Accuracy\")\n",
    "                ax2 = plt.subplot(312)\n",
    "                ax2.set_ylabel(\"Cost\")\n",
    "                ax3 = plt.subplot(313)\n",
    "                ax3.set_ylabel(\"Learning rate\")\n",
    "                ax3.set_xlabel(\"Display Step\")\n",
    "                plt.setp(ax1.get_xticklabels(), visible=False) \n",
    "                plt.setp(ax2.get_xticklabels(), visible=False)\n",
    "                ax1.plot(np.arange(self.training_steps/self.display_step - 1), accuracy_s, 'mo')\n",
    "                ax2.plot(np.arange(self.training_steps/self.display_step - 1), cost_s, 'co')\n",
    "                ax3.plot(np.arange(self.training_steps/self.display_step - 1), learning_rate_s, 'yo')\n",
    "                plt.show()\n",
    "\n",
    "            # 测试集的正确率\n",
    "            test_acc = sess.run(accuracy, feed_dict=test_feed)\n",
    "            print(\"After %d training step(s), test accuracy using average model is %g\" % (self.training_steps, test_acc))\n",
    "    \n",
    "    def evaluate(self,x,y,data):\n",
    "        pass\n",
    "        \n",
    "    def setLearningRate(self,learning_rate):\n",
    "        # 设置学习率\n",
    "        self.learning_rate = learning_rate\n",
    "        \n",
    "    def setTraningStep(self,training_steps):\n",
    "        # 设置迭代次数\n",
    "        self.training_steps = training_steps\n",
    "    \n",
    "    def setDisplayStep(self,display_step):\n",
    "        # 设置显示次数\n",
    "        self.display_step = display_step\n",
    "        \n",
    "    def setBatchSize(self,batch_size):\n",
    "        # 每次获取的次数\n",
    "        self.batch_size = batch_size\n",
    "        \n",
    "    def setRegularizerRate(self,regularizer_rate):\n",
    "        # 正则化 因子\n",
    "        self.regularizer_rate = regularizer_rate\n",
    "    \n",
    "    def setLearningRateBase(self,learning_rate_base):\n",
    "        # 基础学习率\n",
    "        self.learning_rate_base = learning_rate_base\n",
    "        \n",
    "    def setMovingAverageDecay(self,moving_average_decay):\n",
    "        # 滑动平均模型的下降率\n",
    "        self.moving_average_decay = moving_average_decay\n",
    "        \n",
    "    def setLearningRateDecay(self,learning_rate_decay):\n",
    "        # 学习率的下降率\n",
    "        self.learning_rate_decay = learning_rate_decay\n",
    "     \n",
    "    def add_layer(self, intputs , in_node, out_node, activation_function=None,init_w = None,init_b = None,L1=False,L2=False):\n",
    "        # inputs 输入\n",
    "        # in_node 输入节点的大小\n",
    "        # out_node 输出节点的大小\n",
    "        # activation_function 激活函数\n",
    "        # init_w w的初始化\n",
    "        # init_b b的初始化\n",
    "        # L1 正则\n",
    "        # L2 正则\n",
    "        \n",
    "        # 添加隐藏层\n",
    "        # tf.random_normal 正态分布 \n",
    "        # tf.truncated_normal 正态分布\n",
    "        # tf.random_uniform 均匀分布\n",
    "        # tf.random_gamma gamma 分布\n",
    "        \n",
    "        if init_w == None:\n",
    "            W = tf.Variable(tf.truncated_normal([in_node, out_node], stddev=0.1))\n",
    "        else:\n",
    "            W = tf.Variable(init_w)\n",
    "            \n",
    "        if init_b == None:\n",
    "            b = tf.Variable(tf.constant(0.0, shape=[out_node]))\n",
    "        else:\n",
    "            b = tf.Variable(init_b)\n",
    "          \n",
    "        if(L1 == True and L2 == False):\n",
    "            tf.add_to_collection(\"losses\", tf.contrib.layers.l1_regularizer(self.regularizer_rate)(W))\n",
    "        if(L2 == True and L1 == False):\n",
    "            tf.add_to_collection(\"losses\", tf.contrib.layers.l2_regularizer(self.regularizer_rate)(W))\n",
    "        if(L2 == True and L1 == True):\n",
    "            tf.add_to_collection(\"losses\", tf.contrib.layers.l1_l2_regularizer(self.regularizer_rate)(W))\n",
    "\n",
    "        y = tf.matmul(intputs, W) + b\n",
    "\n",
    "        #激活函数\n",
    "        if activation_function == None:\n",
    "            return y\n",
    "        else:\n",
    "            return activation_function(y) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:03.837331Z",
     "start_time": "2018-02-07T01:23:03.288720Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting MNIST_data/train-images-idx3-ubyte.gz\n",
      "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n",
      "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n",
      "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n"
     ]
    }
   ],
   "source": [
    "INPUT_NODE = 784\n",
    "OUTPUT_NODE = 10\n",
    "LAYER1_NODE = 500\n",
    "LAYER2_NODE = 300\n",
    "LAYER3_NODE = 100\n",
    "\n",
    "data_dir = \"MNIST_data/\"\n",
    "mnist = input_data.read_data_sets(data_dir, one_hot=True)\n",
    "\n",
    "x = tf.placeholder(tf.float32, [None , INPUT_NODE])\n",
    "y = tf.placeholder(tf.float32, [None , OUTPUT_NODE])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 单层网络的训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:06.831434Z",
     "start_time": "2018-02-07T01:23:03.839348Z"
    },
    "run_control": {
     "marked": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.8916 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9056 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9106 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9124 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9172 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9152 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9166 \n",
      "After 800 training step(s), validation accuracy using average model is 0.921 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9214 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9204 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9208 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9202 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9218 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9216 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.924 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9232 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9238 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.926 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9192 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9266 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9264 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9186 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9234 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9218 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9238 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9244 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9246 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9244 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9238 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nzxCXWcpqxvIrgMcn+QTweOA24OB3d5A8FHgX8G+ranru+6uAHwQeAzwEeOVsL15VO6pqrKrG1q5d\nu6QDkSRJc+tV+OrV5W6G7dqH/dDPELcfOKVreR1we3eFqrq9qp5ZVT8KXNKUfQMgyQOADwKvrqqP\nd23zxeqYAt5GZ9hWkpbNSv/rXlqMXoWvXl3uZtiufdgP/Qxx1wGbkpyW5DjgAuCq7gpJTkoy3YZX\nAZc35ccB76cz6eG9M7Z5aPNvgPOBT/fxGCTpMMP4172hUkvVi89Qr8JXry7O3MtrHw7r71jfQlxV\nHQQuAq4GbgaurKqbklya5OlNtbOBPUk+C4wC25vyXwB+CnjBLJcS2ZnkU8CngJOA3+7XMUjSTMP2\n1/0whkq1S68+Q70KX7263E2v2jPMv2Opmnma2sozNjZW4+Pjg26GpBVg15pd9z67FyBw9qGzl7k1\nsHvD7tkv0rt+hLO+cNayt0cLM0yzL3v1GZoOO91/5Kw5fs2iLlXTi/enV+0ZxO9Ykuuramy+et6x\nQZKOQi/vbNCLL6phu12W5jczXEz37AADCXK9+gz18s4YvbjcTa/aM8y/Y4Y4SToKG7dvnPWv+6Md\n6unVF/kw3i5Lc5trSH4QIa6Xn6Fhu9ZgL9ozzL9jfb3tliStNL26s0Gvzq1b6bfLWomGrWfHz9Dc\nhvn9sSdOko5SL/66H8YhLC2PYevZ8TM0t2F+f5zYIEkD4ISE1auXEwC0Mi10YoPDqZI0AMM8RKP+\n6tWQvORwqiQNwDAP0aj/hm0CgNrJECdJA+IXuaSlcDhV0tAb1lveSIPm78bqZk+cpKHWywujDtNV\n8qWlGraLBmv52RMnDZh/Sc+tV9dTG+b7H0qLMWz38dXyM8RJA2SwmF+vrqfmF55WmmG7aLCWnyFO\nWqRe9KAZLOZ3pAugHu2FUf3C00rTq98NtZchTlqEXvWgDWOwGLbh3V5dT80vPK00XmtQhjhpEXrV\ngzZswWIYh3d7dWFUv/C00njRYHnbLWkRdq3ZBbP96gTOPnT2gvfTy9vv9GLm5Uq/FZSzUyW1wUJv\nu+UlRqRF6NUNrHt11f5eXWqgl8O7wxiYvLiupJWkr8OpSc5JsifJ3iQXz7J+fZJrktyYZFeSdU35\nGUl2J7mpWfeLXducluQfknwuyXuSHNfPY5Bm08uhudGto5z1hbM4+9DZnPWFsxYVMoZteHcYh2Ul\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2612ec18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.921\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l1,mnist)\n",
    "# 单层网络 learning rate 0.5 trainning step 3000"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-01T13:51:25.569434Z",
     "start_time": "2018-02-01T13:51:25.564704Z"
    }
   },
   "source": [
    "单层网络效果一般"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 添加一个隐藏层"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:18.633746Z",
     "start_time": "2018-02-07T01:23:07.082394Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.7568 \n",
      "After 200 training step(s), validation accuracy using average model is 0.8256 \n",
      "After 300 training step(s), validation accuracy using average model is 0.8566 \n",
      "After 400 training step(s), validation accuracy using average model is 0.8684 \n",
      "After 500 training step(s), validation accuracy using average model is 0.8778 \n",
      "After 600 training step(s), validation accuracy using average model is 0.8798 \n",
      "After 700 training step(s), validation accuracy using average model is 0.8896 \n",
      "After 800 training step(s), validation accuracy using average model is 0.892 \n",
      "After 900 training step(s), validation accuracy using average model is 0.8924 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.8986 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.8988 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9006 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9038 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.903 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9032 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.906 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9078 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9082 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.908 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9086 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9084 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.909 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9114 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.91 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9116 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9122 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9136 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9126 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9138 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAIZCAYAAAD5pnguAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X2cXndd5//XOy2dWmix0hilaZJG\nSqQoio5FUKGKxdLFVgSxpSjdRSKrRRfR3bJFqdV6w7rr6s+KRheBGlorKxihWlltdXUDmym9wbRO\nDbO9GQrTcN9SmdLm8/vjOgNXJzOTK5nr5szM6/l4zKPXOed7zvWZk9Pm3e/3nPNNVSFJkqR2Wjfq\nAiRJkrQ4w5okSVKLGdYkSZJazLAmSZLUYoY1SZKkFjOsSZIktZhhTWtGkruSfO+IvvvBJFtH8d1a\nOZL8XpKf73dbSSubYU0agqp6QlVNjboOgCSV5CkDOO5XJXl3ks8nuTvJy5domyS/nuSTzc+bk6Rr\n+44kk0kOJLlogf1fl+TjST6b5K1Jxrq2bUlyQ5KHkvzz/IC+nH0P8fsv+38Gquo1VfVL/W7bL0lu\nTPJjw/zO5ntvSLI/yeeS3JrkvHnbX95cc59P8p4kX9W1bcnrcql9pbYwrEnLlOSoUdcwJ8nRI/z6\nK4GHgQ3AhcBbkjx9kbbbgR8Avgl4BvAi4Me7tt8K/ATwofk7Jvk+4BLg+cAWYCvwi11NrgZuBp4E\nXAq8K8n65e67XCP+s1npfhr42qo6gc6188dJvhagucZ+H/gROtfeQ8Dvdu276HXZw75SO1SVP/6s\niR/gLuB7m8/r6Pyl/RHgk8C1wFd1tf1T4OPAZ4G/B57ete1twFuA64DPA9/brLsSeB/wAPBB4Ou6\n9ingKV37L9X2BcBk892/C/wd8GOL/E6XAe8C/hj4HPBjwBnAbuAzwMeA3wGOadr/fVPL54EHgR9u\n1r8IuKXZ5/8AzzjMc/t4On8hPrVr3VXAry3S/v8A27uWXwV8YIF2/wBcNG/dO4Ff6Vp+PvDx5vNT\ngVng+K7t/xt4zXL3PcTvfxVwAPjX5rz+RzphsJrf7R7g73u8tn65+XwmMA28Hri/+bP8t0fY9knA\nXzTXyB7gl4F/WOR3Oba5nj7ZXA976ASZK4BHgS80v+PvNO2/Hng/8Ck61+3L5tX4e832B+hcy5uX\n+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\nM6tjXwHlvxUdiYLsRAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c3a2d0c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9108\n"
     ]
    }
   ],
   "source": [
    "# 添加一个无激活函数的隐藏层 学习率设低一点\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.setLearningRate(0.01)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:30.862132Z",
     "start_time": "2018-02-07T01:23:18.636083Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9216 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9454 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9532 \n",
      "After 400 training step(s), validation accuracy using average model is 0.961 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9632 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9658 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9652 \n",
      "After 800 training step(s), validation accuracy using average model is 0.969 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9668 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9636 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9738 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9744 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.974 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.973 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9744 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.973 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.977 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9758 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.98 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9826 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2f5c0a58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9774\n"
     ]
    }
   ],
   "source": [
    "# 添加一个relu函数的隐藏层\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l2,mnist)\n",
    "# 1层隐藏层 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:43.610458Z",
     "start_time": "2018-02-07T01:23:30.864335Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.869 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9056 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9232 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9374 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9392 \n",
      "After 600 training step(s), validation accuracy using average model is 0.935 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9494 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9456 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9508 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9608 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9652 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9652 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9644 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9618 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9606 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9696 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9642 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.966 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9672 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9714 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9724 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9726 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9738 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9718 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9666 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.967 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9746 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9706 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9754 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2fc31b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9742\n"
     ]
    }
   ],
   "source": [
    "# 添加一个tanh函数的隐藏层\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.tanh)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:23:56.427750Z",
     "start_time": "2018-02-07T01:23:43.612632Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.8446 \n",
      "After 200 training step(s), validation accuracy using average model is 0.891 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9032 \n",
      "After 400 training step(s), validation accuracy using average model is 0.898 \n",
      "After 500 training step(s), validation accuracy using average model is 0.914 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9258 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9272 \n",
      "After 800 training step(s), validation accuracy using average model is 0.93 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9294 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.934 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.936 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9384 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9386 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9434 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9406 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.946 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9468 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9516 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9536 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9532 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9476 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9516 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9554 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9564 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.959 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9582 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9596 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.96 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.961 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c302b9668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9601\n"
     ]
    }
   ],
   "source": [
    "# 添加一个sigmoid函数的隐藏层\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.sigmoid)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:24:10.035584Z",
     "start_time": "2018-02-07T01:23:56.430248Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9148 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9418 \n",
      "After 300 training step(s), validation accuracy using average model is 0.944 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9532 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9594 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9624 \n",
      "After 700 training step(s), validation accuracy using average model is 0.967 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9686 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9708 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9702 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9708 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9734 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9758 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9728 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.975 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.977 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9738 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.981 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c30972e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9779\n"
     ]
    }
   ],
   "source": [
    "# 添加一个swish函数的隐藏层\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:24:22.505077Z",
     "start_time": "2018-02-07T01:24:10.037682Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.8804 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9074 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9086 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9166 \n",
      "After 500 training step(s), validation accuracy using average model is 0.923 \n",
      "After 600 training step(s), validation accuracy using average model is 0.925 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9278 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9258 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9284 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9294 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9294 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9288 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9406 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9428 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9382 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9408 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9434 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9444 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9446 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9462 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9498 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9488 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9512 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.951 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9532 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9552 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9538 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9532 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.955 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c302010b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9525\n"
     ]
    }
   ],
   "source": [
    "# 添加一个selu函数的隐藏层 设低一点学习率\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.selu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.setLearningRate(0.1)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:24:34.735779Z",
     "start_time": "2018-02-07T01:24:22.507311Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9042 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9264 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9294 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9402 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9406 \n",
      "After 600 training step(s), validation accuracy using average model is 0.95 \n",
      "After 700 training step(s), validation accuracy using average model is 0.945 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9522 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9524 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9584 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9592 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9608 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9606 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9602 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9604 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9636 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9618 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9652 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9674 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9646 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9694 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.971 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9668 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9692 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9702 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9724 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.97 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9688 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9706 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAIZCAYAAAD5pnguAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X+cZmdd3//XexMzGAgayDpqkt3N\naFgNgiBDbERNVH4Ei4RfYsKKYLVblHy12rQNXVtsdEWBWtoakfXbWKALEahoimDkm2ahPwbMBEIw\noQPrmE2WwLAQhYTFict8vn/cZ8K9k9nZe3bvM3Nm5vV8POaR+5xznXN/5uxJ9p3rOudcqSokSZLU\nTZtWuwBJkiQdm2FNkiSpwwxrkiRJHWZYkyRJ6jDDmiRJUocZ1iRJkjrMsKYNI8ldSZ6+St/9QJKx\n1fhurR1Jfi/Jvx52W0lrm2FNWgFV9aiqml7tOgCSVJJvb+G4j0ny7iRfTnIgyUuWaPtPk0wn+VKS\ne5P8+ySn9m3fluTmJIeT/N+FITvJLyX5bJIvJrkuychK7Huc3/+k/2egql5RVb827LbDkmRfkp9d\nye9svvfmJIea6+VjSS5bsP0lzTX35SR/nOQxfduWvC6X2lfqCsOadJKSnLLaNczrDzyr4FrgQWAU\n2AG8Mcnjj9H2vwPfU1WPBr4L+G7gF/q2vx34KPBYYBfwriSbAZI8C7ga+BFgGzAG/Nu29z1Zq/xn\ns9b9IvAtzfWyE/ivSb4FoLnG3gS8lN61dxj43b59j3ldDrCv1A1V5Y8/G+IHuAt4evN5E72/tP8K\n+ALwDuAxfW3fCXwW+CLwQeDxfdv+C/BG4L3Al4GnN+uuBf4UuB/4MPBtffsU8O19+y/V9pnAVPPd\nvwt8APjZY/xOvwq8C/ivwJeAnwUuBCaAvwU+A/wOcFrT/oNNLV8GHgB+oln/HOC2Zp//Azxxmef2\nkfT+Qnxc37q3Ar85wL6PBf4/4Heb5ccBs8AZfW3+J/CK5vPbgN/o2/YjwGfb3vc4v8NbgTngK815\n/Rf0wmABPwPcDXxwwGvr15vPlwAHgX8GfK75s/zpE2z7WHoB+UvALcCvA//rGL/LI5rr6QvN9XAL\nvSCzG/gq8HfN7/g7TfvvAN4P3Efvun3xghp/r9l+P71reetJ/nt8YVPDhc3ybwBv69v+bc21eAbH\nuS6X2nel/rvkjz+D/Nizpo3qF4DnARcD3wr8Db0ANe99wPnANwEfAfYu2P8l9P7yOgP4X826K+j1\n0pwJ7G+2H8uibZOcRS98vYreX7BTwPcd53e5rNnnG5s6vwr8EnAWcBG9QPLzAFX1g80+3129odk/\nTPI9wHXAP2m+803ADfPDg0nek+Rvj/HznuZ4jwO+WlWf7KvrY8Cxetbmh5++BHyeXs/am5pNjwem\nq+r+Yxzr8c1y/7bRJI9ted9jqqqX0gtkP9ac19f2bb4Y+E7gWc3y8a6tft8MfANwNr3Qd22SM0+g\n7bX0Avo3Ay9rfo7lZc1xzqV3PbwC+EpV7aIXXq9sfscrkzySXhB7W/P7XAH87oIe1R3Ar9G7Hm/r\n/32T3L7EtXVUD1dzHf4dvf+52QdMNpuO+jOtqr+iCWgc/7pcal+pMwxr2qj+CbCrqg5W1Sy9HqoX\nzQ9VVdV1VXV/37bvTvINffv/SVX976qaq6q/a9b9UVX9RVUdofcX0pOW+P5jtf1R4I6q+qNm23+k\n1wuzlImq+uOmlq9U1a1V9aGqOlJVd9ELQRcvsf8/Bt5UVR+uqq9W1Zvp9TD9g+ZcPKeqvvEYP89p\njvEoej1F/b5IL8wuqqreVr1hrcfR632ZGfBYC7fPfz6j5X1P1K9W1Zer6isw0LXV7++Ba6rq76vq\nvfR6tLYvp20zTP9C4NVVdbiq7gTevES9f08vpH17cz3cWlVfOkbb5wB3VdUfNNfbR4D/Bryor82f\nVtUHm993F3BRknObc/HEJa6tn+//ouZaO4PevyM3VtVcs2mpP7flXg8Lt0udYFjTRrUVePf8/8UD\nn6DXIzWa5JQkv5nkr5qen7uafc7q2/+eRY7ZH6oO0/uL4FiO1fZb+49dVUVveGspR9WS5HFNL8Rn\nm/p/Y0HtC20F/ll/rwa9XpVvPc739nsAePSCdY+mN/S1pKr6FHAHX7tX6HjHWrh9/vP9Le97oh76\n8xnw2ur3hSa0z1vqujpW283AqRx9nSx2/c57K3AjcH3z8Mdrk3zdMdpuBb53wbWzg14P3sO+q6oe\noDdcupxr6yFNEH0f8Kwkz21WL/XnttzrYeF2qRMMa9qo7gGeveD/5B9RVZ+mN8R5Gb170b6B3r1H\nAOnbv1qq6zPAOfMLSdK/fAwLa3kj8H+B85ueq3/F0bUvdA+we8G5OL2q3t7U8L70Xj2y2M/7mmN8\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2f554278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9706\n"
     ]
    }
   ],
   "source": [
    "# 添加一个elu函数的隐藏层 设低一点学习率\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.elu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.setLearningRate(0.3)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-01T13:53:04.025863Z",
     "start_time": "2018-02-01T13:53:04.022404Z"
    }
   },
   "source": [
    "relu , swish 表现比其他的激活函数要好一些 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试试2层隐藏层（Relu 负半轴神经元死亡，降低学习率能够解决问题）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:24:51.504856Z",
     "start_time": "2018-02-07T01:24:34.738251Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9352 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9374 \n",
      "After 300 training step(s), validation accuracy using average model is 0.954 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9628 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9672 \n",
      "After 600 training step(s), validation accuracy using average model is 0.959 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9702 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9708 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9742 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.971 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9776 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.974 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.981 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9832 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.984 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9824 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nJEl96C9NALAO3oGVZwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c27dbf710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.975\n"
     ]
    }
   ],
   "source": [
    "# 添加隐藏层 \n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, LAYER2_NODE, tf.nn.relu)\n",
    "l3 = mnistDataTrain.add_layer(l2, LAYER2_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l3,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:25:10.046320Z",
     "start_time": "2018-02-07T01:24:51.507174Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.932 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9482 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9558 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9622 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9686 \n",
      "After 600 training step(s), validation accuracy using average model is 0.966 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9708 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9744 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9702 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9808 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9808 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.978 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.98 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.982 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x114b88c50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9803\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, LAYER2_NODE, tf.nn.swish)\n",
    "l3 = mnistDataTrain.add_layer(l2, LAYER2_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l3,mnist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 试试3层隐藏层"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:25:28.661966Z",
     "start_time": "2018-02-07T01:25:10.048607Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.7812 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9492 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9522 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9664 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9686 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9704 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9664 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9732 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9712 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9734 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9722 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9694 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9748 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.977 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9716 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9626 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9804 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAIZCAYAAADJKmkPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X28Hndd5//XOylNxbbcJWaxaZsG\nQzVILXoodF2lyl2K2FZBbC1iV9YsrlUXgaXdIvbXtYLIb715WFmKW4EaKBVliVisio13G7AnUgpp\nDYTYm7QQQrkrVFJKPvvHNQevnp6cc9LMda6Zc17Px+N69JqZ78x8Z65Jr/f5fuc7V6oKSZIk9cuy\ncVdAkiRJh84QJ0mS1EOGOEmSpB4yxEmSJPWQIU6SJKmHDHGSJEk9ZIjTkpfktiTPGtO+v5xk3Tj2\nrf5I8v4kP9V2WUn9ZoiTxqiqjq6q3eOuB0CSSvJtI9juY5O8J8lXktye5CdmKXtpkq814fbL00Nu\nklOTbE9yX/PfU4eWJcmvJ7mneb0hSUa97jyO/7DPa1WdWVVva7tsW8bxh1CSlUn+ofm8vpBkW5Lv\nnVbm5Uk+neSLSa5KsmJo2dokNzSf6T9Pr/9s60pdYYiTRiTJ8nHXYUqSI8a4+yuA+4HVwPnAm5I8\naZby72rC7dHDITfJkcB7gT8EHgO8DXhvMx9gE3AO8F3AKcDzgf+8AOseljF/Nn32ZeCngVUMPpdf\nB/506nwmeS5wEfBMYC2wDvj/htZ/J/Bh4HHAJcC7k6ya57pSN1SVL19L+gXcBjyreb+Mwf+8Pwnc\nA1wLPHao7B8Bnwa+CPwt8KShZW8F3gRcB3wFeFYz7wrgz4B7gQ8BTxhap4BvG1p/trLPAXY2+/49\n4G+A/3SQY7oUeDeD4PEl4D8BpwHbgC8AnwJ+FziyKf+3TV2+wuDL8ceb+c8HbmrW+b/AKYd4br+Z\nQYB74tC8q4HXz1LvPzzIsucAdwEZmncHsLF5/3+BTUPLXgp8cNTrznH8DzmvwBnAHuDVzbV0NYMQ\n8j5gH/D55v2aoe1snfqsgQuAvwfe2JT9F+DMh1n2pKaO9wJ/1Vx/Bzv/K5t6fQH4HPB3DP69XA0c\nAP61Ocb/1pR/enNevwB8BDhjWh1fB/wjg+v5vQz9O3sY/4aXAT/cnOtvaea9A/i1oTLPBD7dvH8i\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c277f9b38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9783\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, LAYER2_NODE, tf.nn.relu)\n",
    "l3 = mnistDataTrain.add_layer(l2, LAYER2_NODE, LAYER3_NODE, tf.nn.relu)\n",
    "l4 = mnistDataTrain.add_layer(l3, LAYER3_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l4,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:25:49.445735Z",
     "start_time": "2018-02-07T01:25:28.664070Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9248 \n",
      "After 200 training step(s), validation accuracy using average model is 0.951 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9566 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9572 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9638 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9652 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9692 \n",
      "After 800 training step(s), validation accuracy using average model is 0.972 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9718 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.973 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9754 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9748 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9728 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9752 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.979 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9776 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.982 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.982 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9792 \n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnEAAAIZCAYAAADJKmkPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X+cnWdd5//XOy0dqBQpbXYW2ybp\nLDVSViw6FKorVEAsu9jym9bwS9nNqtuv+xVxaTeuuF0jP78PfzzsskRFKUZLYUWqgpWtjT92A9sp\nlJa0BsLYtCEwBCrQEhkM+Xz/OPeUk2GSmWTOmXPuM6/n43EeOee6r/s+133PmZz3XNd133eqCkmS\nJLXLmkE3QJIkScfPECdJktRChjhJkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSI06qX5J4kzxrQez+Y\nZGIQ7632SPLBJK/sdV1J7WaIkwaoqh5ZVdODbgdAkkryuD5s9zFJ3pfkq0n2JvmxY9T9pST/1ITb\nB+eH3CQXJLktycHm3wu6liXJm5J8sXm8OUn6ve4S9n/Zx7WqnlNV7+x13V4ZxB9CSc5M8r+bn9eX\nkuxM8gPz6vxsks8l+XKSdyQZ61q2Icktzc/07+a3/1jrSsPCECf1SZKTBt2GOUlOHuDbXwt8HRgH\nNgFvS/KEY9R/dxNuH9kdcpOcArwf+H3gdOCdwPubcoDNwPOA7wGeCDwX+PcrsO6yDPhn02YPAj8B\nrKXzc3kT8CdzxzPJjwBXAc8ENgATwH/tWv8PgY8BZwBbgPcmWbvEdaXhUFU+fKzqB3AP8Kzm+Ro6\n/3l/GvgicAPwmK667wE+B3wZ+GvgCV3Lfg94G/AB4KvAs5qya4E/Ax4APgL8i651Cnhc1/rHqvts\nYHfz3v8d+Cvg3x5ln34JeC+d4PEV4N8CFwI7gS8BnwV+Ezilqf/XTVu+SufL8aVN+XOB25t1/g/w\nxOM8tt9GJ8B9Z1fZu4A3HqPdv3+UZc8GPgOkq+xe4JLm+f8BNnctezXw4X6vu8j+f8txBS4G9gGv\naz5L76ITQv4UOAD8Q/P87K7t7Jj7WQOvAv4WeGtT9++B55xg3XObNj4A/K/m83e0439m064vAfcD\nf0Pn9+VdwGHgH5t9/E9N/ac2x/VLwMeBi+e18Q3A/6XzeX4/Xb9nJ/A7vAb40eZY/7Om7A+AX+mq\n80zgc83z7wRmgdO6lv8N8JOLrevDxzA97ImTjvQzdHpkng58B50vvmu7ln8QOA/4Z8BHge3z1v8x\nYCtwGp0vT4Ar6PwVfzqwp1l+NAvWTXImnVB2NZ2eg93A9y+yL5c16zy6aec3gJ+l82V8EZ0vpp8G\nqKqnNet8T3V6v96d5HuBd9DpkToDeDtw49ywUpI/bYaxFnr8abO97wS+UVWf7GrXx4Fj9cT9aJL7\nk+xK8lNd5U8A7qiq7nsF3tG1rSc0217offq57lEtdFyb1/8ceAywnk4v4Brgd5vX6+gEot88xqaf\nQuczcCbwZuB3uod/j6PuH9AJUmfQCdAvP8Z7/hyd8LmWTq/qf+7sYr2cTqj90WYf35zkLDp/jPxy\ns5+vBf7nXE9X4xV0etK+AzgE/MbcgmN8rr6U5KruRiW5A/gacCPw21X1+WbRQj/T8SRnNMumq+qB\necuP9XmYW1caGoY46Uj/HthSVfuqapbOF9uL5oZoquodVfVA17LvSfLtXeu/v6r+d1UdrqqvNWV/\nVFX/t6oO0QlTx5pPdbS6/xrYVVV/1Cz7DTq9OMeys6r+uGnLP1bVbVX14ao6VFX30AllTz/G+v8O\neHtVfaSqvlGdeVazdHpYqKrnVtWjj/J4brONR9Lpaen2ZTohdyE3AI+nExT+HfCLSa5Y4rbmL/8y\n8MgmsPRz3RNxGHh9Vc02P5svVtX/rKqDTbDYyrF/Nnur6req6ht0hncfSydYLbluknXAk4FfrKqv\nV9Xf0glCR/NPzbrrq+qfqupv5gXbbi8DPlBVH2g+fx8Cpuh8jue8q6o+UVVfBf4L8JK5KQjH+Fw9\nuqre2P1GVfVE4FF0/oD6265FC/1MofNzO5HPAyzvZy71nCFOOtJ64H1zf/UDd9PpwRpPclKSNyb5\ndJKv0BmGhU4Px5z7Fthmd9g6SOcL4miOVvc7urfdfHnuW2RfjmhLku9ses8+17T/V+a1fb71wM91\n94IA5zRtWaoH6XzBdnsUneG7b1FVd1XV/iY0/h/g14EXLXFb85c/CniwOVb9XPdEHOgK+SQ5Ncnb\n0znx4yt0hjgffYx5lQ99TqrqYPP0aJ+ro9X9DuD+rjJY+PM75y10eof/Isn0/B6xedYDL5732flX\ndELgQu+1F3gYx/48HlVVfa2q/hC4Ksn3NMUL/Uyh83M7kc8DLO9nLvWcIU460n105gx1/+X/8Kr6\nDJ2/9C+jM9ft2+lMeAboHsY6Ws/Ecn0WOHvuRdNDdPbRqy/YlrcBfwecV1WPojMcdrQhOOgci63z\njsWpzZfl3KUsHjzK44PNNj4JnJzkvK7tfg+wa7Ed7tqHuTbuAp44b9jwiV3b2tVse6H36ee6J2L+\nz+bngI3AU5qfzdww7LF+Psv1WeAxSU7tKjvnaJWbHuifq6oJOvPPXpPkmXOL51W/j05PW/dn59vm\n9aJ1v9c6Oj19X4CHLr1ztMd/PsY+PYzOSQiw8M90pqq+2CybSHLavOXH+jzMrSsNDUOcdKT/AWxN\nsh4gydoklzXLTqMznPhF4FQ6PVkr5c+A707yvGZo9z/QmVd1PE6jc5LDg0m+C/ipectn+OYXIMBv\nAT+Z5Cnp+LYk/2bui686l7J45FEez2nqfBX4I+CaZv0foBOE37VQA5NcluT05v0upDNH8f3N4h10\nekV/JslYkiub8r9s/r2OTrA4K8l30AlGv9fvdZO8Ksk9C+3PUY7rQk6jMw/uS0keA7x+kfrLVlV7\n6Qxx/lKSU5JcRCecLSjJc5M8rgmzX6FzTL7RLJ6/j79PZ27jjzQ92A9PcnGS7j88Xpbk/CZEXgO8\ntxny5Rifq0dW1a807Xlqkn/VtP0RSV5HZ0j5I832rwNe3bzH6cAv0PxMqzNH83bg9U3bnk8nmP/P\nxdaVhokhTjrSr9OZF/QXSR4APkxnYjh0/mPfS+dMxbuaZSuiqr4AvJjOxPQvAufT+QKePY7NvJZO\nb+IDdALau+ct/yXgnc3w10uqaorOvLTfpHOCxx46Zzser58GHgF8ns5lHX6qqnYBJPnBJA921b28\neZ8H6BzvNzVz8aiqr9M56eQVdM54/AngeU05dOb4/QlwJ/AJOsH37Suw7jnA/z7G/v8SXcf1KHV+\nrTlGX6DzufrzY2yvlzbROcnli3ROQng3R/9MnUfnDNYH6Zzl/N+rakez7A3ALzT7+Nqquo9OWP/P\ndM64vQ/4eY78znkXnWD0OeDhdAL78Rijc9LRF+n8Tv5r4N9U1X6AqvpzOr8vt9D5vd3LkeH4cmCS\nzmf7jcCLqurAEteVhkKOPi9V0rBKsobOnLhNVXXLoNuzmiX5C+A/VtXdg27LciV5N/B3VdXXwJJk\nB51Lmfx2P99HGnX2xEkt0QxNPTqdS3zMzWdbsd5ALayqnt3WAJfkyUn+RZI1SS6h03v2x4Nul6Sl\n8UrhUntcROe6XqfQGc59XlX942CbpJb753TmLJ5Bp2f3p6rqY4NtkqSlcjhVkiSphRxOlSRJaiFD\nnCRJUgsZ4iRJklrIECdJktRChjhJkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ\n4iRJklrIECdJktRChjhJkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrI\nECdJktRChjhJkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrIECdJktRC\nhjhJkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrIECdJktRChjhJkqQW\nMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklro5EE3YCWceeaZtWHDhkE3Q5Ik\naVG33XbbF6pq7WL1VkWI27BhA1NTU4NuhiRJ0qKS7F1KPYdTJUmSWsgQJ0mS1EKGOEmSpBYyxEmS\nJLWQIU6SpFVuZvsMOzfsZMeaHezcsJOZ7TODblJPjOp+zVkVZ6dKkqSFzWyfYffm3Rw+eBiA2b2z\n7N68G4DxTeODbNqyjOp+dbMnTpKkVWx6y/RDQWfO4YOHmd4yPaAW9cao7lc3Q5wkSavY7L2zx1Xe\nFqO6X90McZIkrWJj68aOq7wtRnW/uhniJElqqV5M3J/YOsGaU4+MA2tOXcPE1oleNXMgRnW/ug0k\nxCW5JMnuJHuSXLXA8vVJbk5yR5IdSc7uWvbmJLuS3J3kN5JkZVsvSdLgzU3cn907C/XNifvHG+TG\nN42zcdtGxtaPQWBs/Rgbt208ocn/w3Q2aC/3a1ilqlb2DZOTgE8CPwzsA24Frqiqu7rqvAf406p6\nZ5JnAD9eVS9P8v3AW4CnNVX/Fri6qnYc6z0nJyfLe6dKGlUz22eY3jLN7L2zjK0bY2LrxEh9UfXC\nsB2jXrRn54adnQA3z9j6MS6656JeNXXJ5p8NCp2er1ELTishyW1VNblYvUH0xF0I7Kmq6ar6OnA9\ncNm8OucDNzfPb+laXsDDgVOAMeBhwGhd9EWSjkOvemNG2bAdo161Z9gm7q+Gs0GHzSBC3FnAfV2v\n9zVl3T4OvLB5/nzgtCRnVNVOOqHus83jpqq6e6E3SbI5yVSSqQMHDvR0ByRpWPTyi3OYhsJ6adjC\nRa/aM2wT94ctVPbSsP5uDCLELTSHbf6Y7muBpyf5GPB04DPAoSSPAx4PnE0n+D0jydNYQFVtq6rJ\nqppcu3Zt71ovSUOkV1+cw9Zb1UvDFi561Z5hm7g/bKGyV4b5d2MQIW4fcE7X67OB/d0Vqmp/Vb2g\nqp4EbGnKvkynV+7DVfVgVT0IfBB46so0W1LbDetf08vRqy/OYeut6qVhCxe9as+wTdzvZagcpt/V\nYf7dGESIuxU4L8m5SU4BLgdu7K6Q5Mwkc227GnhH8/xeOj10Jyd5GJ1eugWHUyWp2zD/Nb0cvfri\nHLbeKujdF/mw9Vj1sj3jm8a56J6LuPjwxVx0z0UDPYGgV6Fy2H5Xh/F3Y86Kh7iqOgRcCdxEJ4Dd\nUFW7klyT5NKm2sXA7iSfBMaBrU35e4FPA3fSmTf38ar6k5Vsv6R2Gua/ppejV1+cw9Zb1csv8mG7\nhMaw9aD1Ui9C5bD9rg7b70a3Fb/EyCB4iRFJO9bs+NbZtwCBiw9fvMKtGT69vDzEKF4+A7yExkoZ\ntt/VQfzch/kSI5KG2DDNRemlYf5rehgM21DYMA5hDVsP0agatt/VYe45PXnQDZA0POb/xTn3BQwM\nxX9YyzGxdWLBv6ZH6RY8yzW+aXzZP+djBZ3j2fbYurGFe+IGGLqHMViOomH8Xe3F70Y/2BMn6SGj\n3NMwzH9Nj5JRvXwGDF8P0ajyd3Xp7ImT9JBR72kY1r+mR0mvetDmfk7DdKusYewhGlX+ri6NIU7S\nQ4ZxCEvt0sugM2xf5MMYLLW6GeIkPcSeBi3XqAedYQuWWt0McZIe0ssv4F5cZmLUjeoxMuhIK8MQ\nJ+kIvfgCHuWzXHvFYyRpuTw7VVLP9fos11G8dt0onwksaWXYEyep53p5luuo9liN+pnAkvrPnjhJ\nPdfL62mNao+V1xyTtFyGOEk918sLtY5qj9UwXsxWUrsY4iT1XC+vuD6qPVZelV7ScqWqBt2Gvpuc\nnKypqalBN0Pqq1G9XMX8OXHQ6bEy8EgaVUluq6rJxerZEyeNgLmgM7t3Fuqbk/9H4SzOYeyxGsWz\nZSW1jz1x0gjYuWHnwrfLWj/GRfdcNIAWjS57BiX1mz1xUp8NU2/MqE7+H0ajeraspPYxxEknoJfD\nl70Ig6M6+X8YGZglDQtDnHQCetUb06sw6OUqVo6BWdKwMMRJJ6BXvTG9CoPDOPl/VBmYJQ0Lb7sl\nnYCxdWMLn0hwnL0xvRya68WN67W4uWM8ipdzkdQuhjjpBExsnVjwDMXj7Y3pVRjUyjIwSxoGAxlO\nTXJJkt1J9iS5aoHl65PcnOSOJDuSnN2U/1CS27seX0vyvJXfA612vRq+dGhOknSiVvw6cUlOAj4J\n/DCwD7gVuKKq7uqq8x7gT6vqnUmeAfx4Vb183nYeA+wBzq6qg8d6T68Tp2E2qndakCSdmKVeJ24Q\nw6kXAnuqahogyfXAZcBdXXXOB362eX4L8McLbOdFwAcXC3DSsHNoTpJ0IgYxnHoWcF/X631NWbeP\nAy9snj8fOC3JGfPqXA78YV9aqJE2TBfplSTpRA0ixGWBsvljuq8Fnp7kY8DTgc8Ahx7aQPJY4LuB\nm476JsnmJFNJpg4cOLD8VmskjPI9RiVJq8sgQtw+4Jyu12cD+7srVNX+qnpBVT0J2NKUfbmrykuA\n91XVPx3tTapqW1VNVtXk2rVre9d6tZq3TJIkjYpBhLhbgfOSnJvkFDrDojd2V0hyZpK5tl0NvGPe\nNq7AoVSdAG+ZJEkaFSse4qrqEHAlnaHQu4EbqmpXkmuSXNpUuxjYneSTwDiwdW79JBvo9OT91Qo2\nWyPCWyZJkkbFil9iZBC8xIjmzM2Jm3+RXm9RJUkaFku9xIj3TtWq4j1GJUmjwttuadXxumySpFFg\nT5wkSVILGeIkSZJayBAnSZLUQoY4SZKkFjLESZIktZAhTq3hjeslSfomLzGiVph/kd65G9cDXi5E\nkrQq2ROnVvDG9ZIkHckQp1bwxvWSJB3JEKe+68VcNm9cL0nSkQxx6qu5uWyze2ehvjmX7XiD3MTW\nCdaceuTHdc2pa5jYOtHL5kqS1BqGOPVVr+ayeeN6SZKO5Nmp6qtezmXzxvWSJH2TPXHqK+eySZLU\nH4Y49ZVz2SRJ6g9DnPrKuWySJPWHc+LUd85lkySp9+yJkyRJaiFDnCRJUgsZ4iRJklrIECdJktRC\nAwlxSS5JsjvJniRXLbB8fZKbk9yRZEeSs7uWrUvyF0nuTnJXkg0r2XZJkqRhsOIhLslJwLXAc4Dz\ngSuSnD+v2luB66rqicA1wBu6ll0HvKWqHg9cCHy+/62WJEkaLoPoibsQ2FNV01X1deB64LJ5dc4H\nbm6e3zK3vAl7J1fVhwCq6sGqOrgyzZYkSRoegwhxZwH3db3e15R1+zjwwub584HTkpwBfCfwpSR/\nlORjSd7S9Ox9iySbk0wlmTpw4ECPd0GSJGmwlhXiklyZ5PTjXW2Bspr3+rXA05N8DHg68BngEJ2L\nE/9gs/zJwATwqoXepKq2VdVkVU2uXbv2OJsoSZI03JbbE/fPgVuT3NCcrLBQQJtvH3BO1+uzgf3d\nFapqf1W9oKqeBGxpyr7crPuxZij2EPDHwPcucx8kSZJaZ1khrqp+ATgP+B06PWKfSvIrSf7FMVa7\nFTgvyblJTgEuB27srpDkzCRzbbsaeEfXuqcnmetaewZw13L2QZIkqY2WPSeuqgr4XPM4BJwOvDfJ\nm49S/xBwJXATcDdwQ1XtSnJNkkubahcDu5N8EhgHtjbrfoPOUOrNSe6kMzT7W8vdB0mSpLZJJ4Od\n4MrJzwCvBL4A/Dbwx1X1T00v2qeq6lg9citmcnKypqamBt0MSZKkRSW5raomF6t38jLf50zgBVW1\nt7uwqg4nee4yt60Bm9k+w/SWaWbvnWVs3RgTWycY3zQ+6GZJkiSWP5z6AeD+uRdJTkvyFICqunuZ\n29YAzWyfYffm3czunYWC2b2z7N68m5ntM4NumiRJYvkh7m3Ag12vv9qUaUBmts+wc8NOdqzZwc4N\nO084dE1vmebwwcNHlB0+eJjpLdO9aKYkSVqm5Q6nprom1TXDqMvdpk7QXO/ZXPia6z0DjnsYdPbe\n2eMqlyRJK2u5PXHTSX4mycOax38E7KoZkF72no2tGzuuckmStLKWG+J+Evh+OndU2Ac8Bdi83Ebp\nxPSy92xi6wRrTj3y47Hm1DVMbJ04obZJkqTeWtbQZ1V9ns7FejUExtaNdU5EWKD8eM0Nv3p2qiRJ\nw2lZIS7Jw4FXA08AHj5XXlU/scx26QRMbJ04Yk4cLK/3bHzTuKFNkqQhtdzh1HfRuX/qjwB/Rec+\nqA8st1E6MeObxtm4bSNj68cgMLZ+jI3bNhrEJEkaQcs9k/RxVfXiJJdV1TuT/AGd22lpQOw9kyRp\ndVhuT9w/Nf9+Kcm/BL4d2LDMbUqSJGkRy+2J25bkdOAXgBuBRwL/ZdmtkiRJ0jGdcIhrbnL/lar6\nB+CvAa89IUmStEJOeDi1qg4DV/awLZIkSVqi5c6J+1CS1yY5J8lj5h49aZkkSZKOarlz4uauB/cf\nusoKh1YlSZL6arl3bDi3Vw2RJEnS0i33jg2vWKi8qq5bznYlSZJ0bMsdTn1y1/OHA88EPgoY4iRJ\nkvpoucOp/0/36yTfTudWXDpOM9tnvNm8JElasuX2xM13EDivx9sceTPbZ464cf3s3ll2b94NYJCT\nJEkLWu6cuD+hczYqdC5Xcj5ww3IbtdpMb5l+KMDNOXzwMNNbpg1xkiRpQcvtiXtr1/NDwN6q2rfY\nSkkuAX4dOAn47ap647zl64F3AGuB+4GXzW03yTeAO5uq91bVpcvch4GbvXf2uMolSZKWG+LuBT5b\nVV8DSPKIJBuq6p6jrZDkJOBa4IeBfcCtSW6sqru6qr0VuK6q3pnkGcAbgJc3y/6xqi5YZruHyti6\nMWb3fmtgG1s3NoDWSJKkNljuHRveA3SPA36jKTuWC4E9VTVdVV8Hrgcum1fnfODm5vktCywfKRNb\nJ1hz6pE/ijWnrmFiq9dMliRJC1tuiDu5CWIANM9PWWSds4D7ul7va8q6fRx4YfP8+cBpSc5oXj88\nyVSSDyd53tHeJMnmpt7UgQMHlrIvAzO+aZyN2zYytn4MAmPrx9i4baPz4SRJ0lEtdzj1QJJLq+pG\ngCSXAV9YZJ0sUFbzXr8W+M0krwL+GvgMnTl3AOuqan+SCeAvk9xZVZ/+lg1WbQO2AUxOTs7f/tAZ\n3zRuaJMkSUu23BD3k8D2JL/ZvN4HLHgXhy77gHO6Xp8N7O+uUFX7gRcAJHkk8MKq+nLXMqpqOskO\n4EnAt4Q4SZKkUbbci/1+GnhqE7RSVQ8sYbVbgfOSnEunh+1y4Me6KyQ5E7i/qg4DV9M5U5UkpwMH\nq2q2qfMDwJuXsw+SJElttKw5cUl+Jcmjq+rBqnogyelJfvlY61TVIeBK4CbgbuCGqtqV5Jokc5cL\nuRjYneSTwDiwtSl/PDCV5ON0Tnh447yzWiVJklaFVJ34dLEkH6uqJ80r+2hVfe+yW9ZDk5OTNTU1\nNehmSJIkLSrJbVU1uVi95Z6delKShy5mluQRgBc3kyRJ6rPlntjw+8DNSX63ef3jwDuXuU1JkiQt\nYrknNrw5yR3As+hcOuTPgfW9aJgkSZKObrnDqQCfo3PXhhcCz6RzsoIkSZL66IR64pJ8J51Lg1wB\nfBF4N52TJH6oh22TJEnSUZzocOrfAX8D/GhV7QFI8rM9a5UkSZKO6USHU19IZxj1liS/leSZLHw7\nLUmSJPXBCYW4qnpfVb0U+C5gB/CzwHiStyV5dg/bJ0mSpAUs68SGqvpqVW2vqufSuQfq7cBVPWmZ\nJEmSjqoXZ6cCUFX3V9Xbq+oZvdqmJEmSFtazECdJkqSVY4iTJElqIUOcJElSCxniJEmSWsgQJ0mS\n1EKGOEmSpBYyxEmSJLWQIU6SJKmFDHGSJEktZIiTJElqIUOcJElSCxniJEmSWsgQJ0mS1EIDCXFJ\nLkmyO8meJFctsHx9kpuT3JFkR5Kz5y1/VJLPJPnNlWu1JEnS8FjxEJfkJOBa4DnA+cAVSc6fV+2t\nwHVV9UTgGuAN85b/N+Cv+t1WSZKkYTWInrgLgT1VNV1VXweuBy6bV+d84Obm+S3dy5N8HzAO/MUK\ntFWSJGkoDSLEnQXc1/V6X1PW7ePAC5vnzwdOS3JGkjXA/wf8/GJvkmRzkqkkUwcOHOhBsyVJkobH\nIEJcFiirea9fCzw9yceApwOfAQ4BPw18oKruYxFVta2qJqtqcu3atcttsyRJ0lA5eQDvuQ84p+v1\n2cD+7gpVtR94AUCSRwIvrKovJ7kI+MEkPw08EjglyYNV9S0nR0iSJI2yQYS4W4HzkpxLp4ftcuDH\nuiskORO4v6oOA1cD7wCoqk1ddV4FTBrgJEnSarTiw6lVdQi4ErgJuBu4oap2JbkmyaVNtYuB3Uk+\nSeckhq0r3U5JkqRhlqr509FGz+TkZE1NTQ26GZIkSYtKcltVTS5Wzzs2SJIktZAhTpIkqYUMcZIk\nSS1kiJMkSWohQ5wkSVILGeIkSZJayBAnSZLUQoY4SZKkFjLESZIktZAhTpIkqYUMcZIkSS1kiJMk\nSWohQ5wkSVILGeIkSZJayBAnSZLUQoY4SZKkFjLESZIktZAhTpIkqYUMcZIkSS1kiJMkSWohQ5wk\nSVILGeIkSZJaaCAhLsklSXYn2ZPkqgWWr09yc5I7kuxIcnZX+W1Jbk+yK8lPrnzrJUmSBm/FQ1yS\nk4BrgecA5wNXJDl/XrW3AtdV1ROBa4A3NOWfBb6/qi4AngJcleQ7VqblkiRJw2MQPXEXAnuqarqq\nvg5cD1w2r875wM3N81vmllfV16tqtikfw+FgSZK0Sg0iBJ0F3Nf1el9T1u3jwAub588HTktyBkCS\nc5Lc0WzjTVW1f6E3SbI5yVSSqQMHDvR0ByRJkgZtECEuC5TVvNevBZ6e5GPA04HPAIcAquq+Zpj1\nccArk4wv9CZVta2qJqtqcu3atb1rvSRJ0hAYRIjbB5zT9fps4IjetKraX1UvqKonAVuasi/PrwPs\nAn6wv82VJEkaPoMIcbcC5yU5N8kpwOXAjd0VkpyZZK5tVwPvaMrPTvKI5vnpwA8Au1es5ZIkSUNi\nxUNcVR0CrgRuAu4GbqiqXUmuSXJpU+1iYHeSTwLjwNam/PHAR5J8HPgr4K1VdeeK7oAkSdIQSNX8\n6WijZ3JysqampgbdDEmSpEW7MlWbAAAgAElEQVQlua2qJher5yU6JEmSWsgQJ0mS1EKGOEmSpBYy\nxEmSJLWQIU6SJKmFDHGSJEktZIiTJElqIUOcJElSCxnilmlm+ww7N+xkx5od7Nywk5ntM4NukiRJ\nWgVOHnQD2mxm+wy7N+/m8MHDAMzunWX35s6tXMc3jQ+yaZIkacTZE7cM01umHwpwcw4fPMz0lukB\ntUiSJK0WhrhlmL139rjKJUmSesUQtwxj68aOq1ySJKlXDHHLMLF1gjWnHnkI15y6homtEwNqkSRJ\nWi0Mccswvmmcjds2MrZ+DAJj68fYuG2jJzVIkqS+8+zUZRrfNG5okyRJK86eOEmSpBYyxEmSJLWQ\nIU6SJKmFDHGSJEktlKoadBv6LskBYG+f3+ZM4At9fg91eKxXhsd55XisV47HemV4nJdnfVWtXazS\nqghxKyHJVFVNDrodq4HHemV4nFeOx3rleKxXhsd5ZTicKkmS1EKGOEmSpBYyxPXOtkE3YBXxWK8M\nj/PK8VivHI/1yvA4rwDnxEmSJLWQPXGSJEktZIiTJElqIUOcJElSCxniJEmSWsgQJ0mS1EKGOEmS\npBYyxEmSJLWQIU6SJKmFDHGSJEktZIiTJElqIUOcJElSCxniJEmSWsgQJ0mS1EKGOEmSpBYyxEmS\nJLWQIU6SJKmFDHGSJEktZIiTJElqIUOcJElSCxniJEmSWsgQJ0mS1EKGOEmSpBYyxEmSJLWQIU6S\nJKmFDHGSJEktZIiTJElqIUOcJElSCxniJEmSWsgQJ0mS1EKGOEmSpBYyxEmSJLWQIU6SJKmFDHGS\nJEktdPKgG7ASzjzzzNqwYcOgmyFJkrSo22677QtVtXaxeqsixG3YsIGpqalBN0OSJGlRSfYupZ7D\nqZIkSS1kiJMkSWohQ5wkSVILGeIkSZJayBC3TNtnZtiwcydrduxgw86dbJ+ZGXSTJEnSKrAqzk7t\nl+0zM2zevZuDhw8DsHd2ls27dwOwaXx8kE2TJEkjzp64ZdgyPf1QgJtz8PBhtkxPD6hFkiRptTDE\nLcO9s7PHVS5JktQrhrhlWDc2dlzlkiRJvWKIW4atExOcuubIQ3jqmjVsnZgYUIskSdJqYYhbhk3j\n42zbuJH1Y2MEWD82xraNGz2pQZIk9Z1npy7TpvFxQ5skSVpx9sRJkiS1kCFOkiSphQxxkiRJLWSI\nkyRJaiFDnCRJUgv1NcQluSTJ7iR7kly1wPLXJLkryR1Jbk6yvmvZN5Lc3jxu7Co/N8lHknwqybuT\nnNLPfZAkSRpGfQtxSU4CrgWeA5wPXJHk/HnVPgZMVtUTgfcCb+5a9o9VdUHzuLSr/E3Ar1bVecA/\nAK/u1z5IkiQNq372xF0I7Kmq6ar6OnA9cFl3haq6paoONi8/DJx9rA0mCfAMOoEP4J3A83raakmS\npBboZ4g7C7iv6/W+puxoXg18sOv1w5NMJflwkrmgdgbwpao6tNg2k2xu1p86cODAie2BJEnSkOrn\nHRuyQFktWDF5GTAJPL2reF1V7U8yAfxlkjuBryx1m1W1DdgGMDk5uWAdSZKktupnT9w+4Jyu12cD\n++dXSvIsYAtwaVXNzpVX1f7m32lgB/Ak4AvAo5PMhc8FtylJkjTq+hnibgXOa84mPQW4HLixu0KS\nJwFvpxPgPt9VfnqSseb5mcAPAHdVVQG3AC9qqr4SeH8f90GSJGko9S3ENfPWrgRuAu4GbqiqXUmu\nSTJ3tulbgEcC75l3KZHHA1NJPk4ntL2xqu5qlr0OeE2SPXTmyP1Ov/ZBkiRpWKXTuTXaJicna2pq\natDNkCRJWlSS26pqcrF63rFBkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrIECdJktRChjhJ\nkqQWMsRJkiS1kCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklqoryEuySVJdifZk+SqBZa/\nJsldSe5IcnOS9U35BUl2JtnVLHtp1zq/l+Tvk9zePC7o5z5IkiQNo76FuCQnAdcCzwHOB65Icv68\nah8DJqvqicB7gTc35QeBV1TVE4BLgF9L8uiu9X6+qi5oHrf3ax8kSZKGVT974i4E9lTVdFV9Hbge\nuKy7QlXdUlUHm5cfBs5uyj9ZVZ9qnu8HPg+s7WNbJUmSWqWfIe4s4L6u1/uasqN5NfDB+YVJLgRO\nAT7dVby1GWb91SRjvWisJElSm/QzxGWBslqwYvIyYBJ4y7zyxwLvAn68qg43xVcD3wU8GXgM8Lqj\nbHNzkqkkUwcOHDixPZAkSRpS/Qxx+4Bzul6fDeyfXynJs4AtwKVVNdtV/ijgz4BfqKoPz5VX1Wer\nYxb4XTrDtt+iqrZV1WRVTa5d60isJEkaLf0McbcC5yU5N8kpwOXAjd0VkjwJeDudAPf5rvJTgPcB\n11XVe+at89jm3wDPAz7Rx32QJEkaSif3a8NVdSjJlcBNwEnAO6pqV5JrgKmqupHO8Okjgfd0Mhn3\nVtWlwEuApwFnJHlVs8lXNWeibk+yls5w7e3AT/ZrHyRJkoZVqhacpjZSJicna2pqatDNkCRJWlSS\n26pqcrF63rFBkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrIECdJktRChjhJkqQWMsRJkiS1\nkCFOkiSphQxxkiRJLWSIkyRJaiFDnCRJUgsZ4iRJklrIECdJktRCfQ1xSS5JsjvJniRXLbD8NUnu\nSnJHkpuTrO9a9sokn2oer+wq/74kdzbb/I0k6ec+SJIkDaO+hbgkJwHXAs8BzgeuSHL+vGofAyar\n6onAe4E3N+s+Bng98BTgQuD1SU5v1nkbsBk4r3lc0q99kCRJGlb97Im7ENhTVdNV9XXgeuCy7gpV\ndUtVHWxefhg4u3n+I8CHqur+qvoH4EPAJUkeCzyqqnZWVQHXAc/r4z5IkiQNpX6GuLOA+7pe72vK\njubVwAcXWfes5vmi20yyOclUkqkDBw4cZ9MlSZKGWz9D3EJz1WrBisnLgEngLYusu+RtVtW2qpqs\nqsm1a9cuobmSJEnt0c8Qtw84p+v12cD++ZWSPAvYAlxaVbOLrLuPbw65HnWbkiRJo66fIe5W4Lwk\n5yY5BbgcuLG7QpInAW+nE+A+37XoJuDZSU5vTmh4NnBTVX0WeCDJU5uzUl8BvL+P+yBJkjSUTu7X\nhqvqUJIr6QSyk4B3VNWuJNcAU1V1I53h00cC72muFHJvVV1aVfcn+W90giDANVV1f/P8p4DfAx5B\nZw7dB5EkSVpl0jnJc7RNTk7W1NTUoJshSZK0qCS3VdXkYvW8Y4MkSVILGeIkSZJayBAnSZLUQoY4\nSZKkFjLESZIktZAhTpIkqYUMcZIkSS1kiJMkSWohQ5wkSVILGeIkSZJayBAnSZLUQoY4SZKkFjLE\nSZIktZAhTpIkqYX6GuKSXJJkd5I9Sa5aYPnTknw0yaEkL+oq/6Ekt3c9vpbkec2y30vy913LLujn\nPkiSJA2jk/u14SQnAdcCPwzsA25NcmNV3dVV7V7gVcBru9etqluAC5rtPAbYA/xFV5Wfr6r39qvt\nkiRJw65vIQ64ENhTVdMASa4HLgMeCnFVdU+z7PAxtvMi4INVdbB/TZUkSWqXfg6nngXc1/V6X1N2\nvC4H/nBe2dYkdyT51SRjC62UZHOSqSRTBw4cOIG3lSRJGl5LCnFJ3rWUsvlVFiirpbxf13s8Fvhu\n4Kau4quB7wKeDDwGeN1C61bVtqqarKrJtWvXHs/bSpIkDb2l9sQ9oftFM9/t+xZZZx9wTtfrs4H9\nS28aAC8B3ldV/zRXUFWfrY5Z4HfpDNu23vaZGTbs3MmaHTvYsHMn22dmBt0kSZI0xI4Z4pJcneQB\n4IlJvtI8HgA+D7x/kW3fCpyX5Nwkp9AZFr3xONt3BfOGUpveOZIEeB7wiePc5tDZPjPD5t272Ts7\nSwF7Z2fZvHu3QU6SJB3VMUNcVb2hqk4D3lJVj2oep1XVGVV19SLrHgKupDMUejdwQ1XtSnJNkksB\nkjw5yT7gxcDbk+yaWz/JBjo9eX81b9Pbk9wJ3AmcCfzycezvUNoyPc3Bw0ee23Hw8GG2TE8PqEWS\nJGnYLfXs1D9N8m1V9dUkLwO+F/j1qtp7rJWq6gPAB+aV/WLX81vpDLMutO49LHAiRFU9Y4ltbo17\nZ2ePq1ySJGmpc+LeBhxM8j3AfwL2Atf1rVWrzLqxBU+wPWq5JEnSUkPcoaoqOtd5+/Wq+nXgtP41\na3XZOjHBqWuO/FGcumYNWycmBtQiSZI07JYa4h5IcjXwcuDPmrNTH9a/Zq0um8bH2bZxI+vHxgiw\nfmyMbRs3sml8fNBNkyRJQ2qpc+JeCvwY8BNV9bkk64C39K9Zq8+m8XFDmyRJWrIl9cRV1eeA7cC3\nJ3ku8LWqck6cJEnSgCz1jg0vAf4vnUuBvAT4SJIX9bNhkiRJOrqlDqduAZ5cVZ8HSLIW+F/Ae/vV\nMEmSJB3dUk9sWDMX4BpfPI51JUmS1GNL7Yn78yQ38c1bYL2UeRfxlSRJ0so5ZohL8jhgvKp+PskL\ngH8FBNhJ50QHSZIkDcBiQ6K/BjwAUFV/VFWvqaqfpdML92v9bpwkSZIWtliI21BVd8wvrKopYENf\nWiRJkqRFLRbiHn6MZY/oZUMkSZK0dIuFuFuT/Lv5hUleDdy22MaTXJJkd5I9Sa5aYPnTknw0yaH5\n151L8o0ktzePG7vKz03ykSSfSvLuJKcs1g5JkqRRs9jZqf8v8L4km/hmaJsETgGef6wVm/urXgv8\nMLCPTiC8saru6qp2L/Aq4LULbOIfq+qCBcrfBPxqVV2f5H8Arwbetsh+SJIkjZRjhriqmgG+P8kP\nAf+yKf6zqvrLJWz7QmBPVU0DJLkeuAx4KMRV1T3NssNLaWySAM+gcx9XgHcCv4QhTpIkrTJLuk5c\nVd0C3HKc2z4LuK/r9T7gKcex/sOTTAGHgDdW1R8DZwBfqqpDXds8a6GVk2wGNgOsW7fuOJsuSZI0\n3JZ6sd8TkQXK6jjWX1dV+5NMAH+Z5E7gK0vdZlVtA7YBTE5OHs/7SpIkDb1+3jprH3BO1+uzgf1L\nXbmq9jf/TgM7gCcBXwAenWQufB7XNiVJkkZFP0PcrcB5zdmkpwCXAzcusg4ASU5PMtY8PxP4AeCu\nqio6w7pzZ7K+Enh/z1suSZI05PoW4pp5a1cCNwF3AzdU1a4k1yS5FCDJk5PsA14MvD3Jrmb1xwNT\nST5OJ7S9seus1tcBr0myh84cud/p1z600faZGTbs3MmaHTvYsHMn22dmBt0kSZLUB+l0bo22ycnJ\nmpqaGnQz+m77zAybd+/m4OFvnux76po1bNu4kU3j4wNsmSRJWqokt1XV5GL1+jmcqhW2ZXr6iAAH\ncPDwYbZMTw+oRZIkqV8McSPk3tnZ4yqXJEntZYgbIevGxo6rXJIktZchboRsnZjg1DVH/khPXbOG\nrRMTA2qRJEnqF0PcCNk0Ps62jRtZPzZGgPVjY57UIEnSiOrnHRs0AJvGxw1tkiStAvbE6ai85pwk\nScPLnjgtaP415/bOzrJ5924Ae/okSRoC9sRpQV5zTpKk4WaI04K85pwkScPNEKcFec05SZKGmyFO\nC/Kac5IkDTdDnBbkNeckSRpunp2qo+rVNee2z8ywZXqae2dnWTc2xtaJCcOgJEnL1NeeuCSXJNmd\nZE+SqxZY/rQkH01yKMmLusovSLIzya4kdyR5adey30vy90lubx4X9HMftDxzlyrZOztL8c1LlXjN\nOUmSlqdvIS7JScC1wHOA84Erkpw/r9q9wKuAP5hXfhB4RVU9AbgE+LUkj+5a/vNVdUHzuL0vO6Ce\n8FIlkiT1Rz+HUy8E9lTVNECS64HLgLvmKlTVPc2yI77lq+qTXc/3J/k8sBb4Uh/bqz7wUiWSJPVH\nP4dTzwLu63q9ryk7LkkuBE4BPt1VvLUZZv3VJAte8yLJ5iRTSaYOHDhwvG+rHvFSJZIk9Uc/Q1wW\nKKvj2kDyWOBdwI9X1Vxv3dXAdwFPBh4DvG6hdatqW1VNVtXk2rVrj+dt1UNeqkSSpP7oZ4jbB5zT\n9fpsYP9SV07yKODPgF+oqg/PlVfVZ6tjFvhdOsO2GlJeqkSSpP7o55y4W4HzkpwLfAa4HPixpayY\n5BTgfcB1VfWeecseW1WfTRLgecAnetts9VqvLlUiSZK+qW89cVV1CLgSuAm4G7ihqnYluSbJpQBJ\nnpxkH/Bi4O1JdjWrvwR4GvCqBS4lsj3JncCdwJnAL/drHyRJkoZVqo5rmlorTU5O1tTU1KCbIUmS\ntKgkt1XV5GL1vO2WJElSCxni1BrbZ2bYsHMna3bsYMPOnd71QZK0qnnvVLXC3O275u7+MHf7LsCT\nJiRJq5I9cWoFb98lSdKRDHFqBW/fJUnSkQxxagVv3yVJ0pEMcWoFb98lSdKRDHFqBW/fJUnSkTw7\nVa3Rq9t3bZ+ZYcv0NPfOzrJubIytExOGQUlS6xjitKp4qRJJ0qhwOFWripcqkSSNCkOcVhUvVSJJ\nGhWGOK0qXqpEkjQq+hriklySZHeSPUmuWmD505J8NMmhJC+at+yVST7VPF7ZVf59Se5stvkbSdLP\nfdBo8VIlkqRR0bcQl+Qk4FrgOcD5wBVJzp9X7V7gVcAfzFv3McDrgacAFwKvT3J6s/htwGbgvOZx\nSZ92QSPIS5VIkkZFP89OvRDYU1XTAEmuBy4D7pqrUFX3NMsOz1v3R4APVdX9zfIPAZck2QE8qqp2\nNuXXAc8DPtjH/dCI6dWlSiRJGqR+DqeeBdzX9XpfU7acdc9qni+6zSSbk0wlmTpw4MCSGy1JktQG\n/QxxC81Vq2Wuu+RtVtW2qpqsqsm1a9cu8W0lSZLaoZ8hbh9wTtfrs4H9y1x3X/P8RLYpSZI0MvoZ\n4m4FzktybpJTgMuBG5e47k3As5Oc3pzQ8Gzgpqr6LPBAkqc2Z6W+Anh/PxovLWb7zAwbdu5kzY4d\nbNi5k+0zM4NukiRpFelbiKuqQ8CVdALZ3cANVbUryTVJLgVI8uQk+4AXA29PsqtZ937gv9EJgrcC\n18yd5AD8FPDbwB7g03hSgwZg7vZde2dnKb55+y6D3OpggJc0DFK11Glq7TU5OVlTU1ODboZGyIad\nO9m7wF0e1o+Ncc9FFw2gRVop8++/C51rDXqpGkm9kuS2qppcrJ53bJBOgLfvWr28/66kYWGIk06A\nt+9avQzwkoaFIU46Ab28fdeozq8a1f0ywEsaFoY46QT06vZdo3qCxKjuF3j/XUnDwxMbpAEa1RMk\ner1f22dm2DI9zb2zs6wbG2PrxMRATyIYtvZIGi1LPbGhn/dOlbSIXs6vGqZg0ev96j4bdK5XDxjY\n/nn/XUnDwOFUaYB6Nb9q2IYvezlvzLNBJWlhhjhpgHo1v2rYgk4v5415NqgkLcwQJw1Qr06Q6PXw\n5XLPKu3VfoFng0rS0TgnThqwXsyvWjc2tuCJBCc6LNuL+We9mje2dWJiwTskeDaopNXOnjhpBIzq\nsCz0tldPkkaJPXHSCJgLNMs9O3VY5595NqiGxTCdBS4Z4qQRMUzDsloaA0G7DOPlbvwMrW4Op0p6\niHcjWDnDdlkYLW7Yphv4GVo5w3obwb6GuCSXJNmdZE+SqxZYPpbk3c3yjyTZ0JRvSnJ71+Nwkgua\nZTuabc4t+2f93AdpNXH+2coZtkDQS8P6hbdcwzbdYJQ/Q8NkmMNy34ZTk5wEXAv8MLAPuDXJjVV1\nV1e1VwP/UFWPS3I58CbgpVW1HdjebOe7gfdX1e1d622qKu+jJfWB889WxrAFgl4ZxiHHXhm26Qaj\n+hmC4RomPlZYHvRnup89cRcCe6pquqq+DlwPXDavzmXAO5vn7wWemSTz6lwB/GEf2ylplRimHqJR\nvf7dKPcODdt0g1H9DA1bz9cwh+V+hrizgPu6Xu9ryhasU1WHgC8DZ8yr81K+NcT9bjOU+l8WCH0A\nJNmcZCrJ1IEDB050HySNiGH7Yhi2QNArw3bh6V4atukGo/oZGrY/BIY5LPczxC0Urup46iR5CnCw\nqj7RtXxTVX038IPN4+ULvXlVbauqyaqaXLt27fG1XNLIGbYvhmELBL0yrPcD7lUg3DQ+zj0XXcTh\niy/mnosuGujPaxg/Q704zsPW8zXMYbmflxjZB5zT9fpsYP9R6uxLcjLw7cD9XcsvZ14vXFV9pvn3\ngSR/QGfY9rreNl3SqBm2Lwbo3fzDYZo/1Ks7bPRyHtIoz9Mbps9Qr47zsM097NV1OPuhnz1xtwLn\nJTk3ySl0AtmN8+rcCLyyef4i4C+rqgCSrAFeTGcuHU3ZyUnObJ4/DHgu8AkkaRHDPCSyHL3ssRqm\n++b2MnQPWy/ssOnVZ6hXx7mXPV+j2APbrW89cVV1KMmVwE3AScA7qmpXkmuAqaq6Efgd4F1J9tDp\ngbu8axNPA/ZVVfdPfwy4qQlwJwH/C/itfu2DpNExqvdg7VWP1bDdN7eXvTHD2As7THr1GerVce5V\nz9co98DO6esdG6rqA8AH5pX9Ytfzr9HpbVto3R3AU+eVfRX4vp43VNLIG+YhkeXo1RfnsF1GoZeh\ne9iG54ZNrz5DvTzOvfhDYNg+0/3gHRskrRrDOiSyHL0aJh623qpeTtofxonpw3Tmba8+Q8N2nIft\nM90PhjhJarFefXEO45zBXoXuYTuLc1QvdzNsx3kYP9O9luY8gpE2OTlZU1Pe4EHSaOrHmYXQ+SIf\n9CUrRtGGnTsXHHZcPzbGPRddNIAWDdcZzr3S5s90ktuqanKxen2dEydJ6r9ezB8a1TmDw2gYh/lG\n8XZ7q+EzbYiTJAGj+UU+jDzRYuWM+mfaOXGSJK2gYTsBQO1liJMkaQUN2wkAai+HUyVJWmGjPsyn\nlWFPnCRJUgsZ4iRJklrIECdJktRChjhJkqQWWhV3bEhyANjb57c5E/hCn99DHR7rleFxXjke65Xj\nsV4ZHuflWV9VaxertCpC3EpIMrWUW2Ro+TzWK8PjvHI81ivHY70yPM4rw+FUSZKk/7+9+42R6qrD\nOP59bNfYIIVqwbQFY20aMdYEKSGiqJhUU5sqatBafVHEiI012GgTjZqUNyZoKpBqIvEPtZqWplGp\nTY1/iIqolVKo0OWPxYaiYgmYlCAoxpQ+vrhnk+m4u1pmdq737vN5szPn7L3z219OJr8958ycBkoR\nFxEREdFAKeL652t1BzCJJNeDkTwPTnI9OMn1YCTPA5A9cRERERENlJm4iIiIiAZKERcRERHRQCni\n+kDS1ZIek/S4pE/XHU9bSTokaVjSLkk76o6nTSRtkHRM0p6OthdJ2izpD+XnBXXG2BZj5HqVpL+U\nsb1L0jV1xtgGkmZL+oWk/ZL2Svp4ac+47qNx8pwxPQDZE9cjSecAB4C3AIeBh4Hrbe+rNbAWknQI\nmG87XyDZZ5LeCJwCvm37itL2ReAp26vLPycX2P5UnXG2wRi5XgWcsn1bnbG1iaSLgItsPyJpKrAT\neCewjIzrvhknz+8lY3rCZSaudwuAx20ftP0v4B5gSc0xRTwntrcCT3U1LwHuLI/vpHpjjh6Nkevo\nM9tHbD9SHp8E9gOXkHHdV+PkOQYgRVzvLgH+3PH8MBnAE8XATyXtlLSi7mAmgZfYPgLVGzUws+Z4\n2u5jkh4ty61Z4usjSS8DXgM8RMb1hOnKM2RMT7gUcb3TKG1Zo54Yr7c9D3gbcFNZlopog68ClwFz\ngSPAl+oNpz0kvRD4HnCz7b/VHU9bjZLnjOkBSBHXu8PA7I7ns4Ana4ql1Ww/WX4eAzZRLWXHxDla\n9ruM7Hs5VnM8rWX7qO0ztp8Bvk7Gdl9IGqIqLO6y/f3SnHHdZ6PlOWN6MFLE9e5h4HJJl0p6PvA+\n4P6aY2odSVPKplkkTQHeCuwZ/6ro0f3ADeXxDcAPaoyl1UaKiuJdZGz3TJKAbwL7ba/p6Mq47qOx\n8pwxPRj5dGoflI9OrwPOATbY/nzNIbWOpJdTzb4BnAvcnTz3j6SNwGLgQuAocCtwH3Av8FLgT8B7\nbGdDfo/GyPViqmUnA4eAj4zs24qzI2kR8CtgGHimNH+Gar9WxnWfjJPn68mYnnAp4iIiIiIaKMup\nEREREQ2UIi4iIiKigVLERURERDRQiriIiIiIBkoRFxEREdFAKeIiovEknZG0S9JeSbslfULS80rf\nfEm3n+V9D0m6sA/xLZc0XI4g2iNpSWlfJuniXu8fEZPTuXUHEBHRB6dtzwWQNBO4G5gG3Gp7B7Cj\nrsAkzQI+C8yzfaIcTzSjdC+j+hLUnPISEc9ZZuIiolXKsWwrqA7flqTFkh4AkPSmMmO3S9LvJE0t\n/VslbZK0T9L6kVm8TpLuk7SzzPatKG0fkrS243c+LGlN16UzgZPAqRLfKdtPSFoKzAfuKvGcJ+lK\nSb8sr/OTjuOhtkhaJ+nBMpOXI4wiIkVcRLSP7YNU728zu7puAW4qs3ZvAE6X9gXAJ4FXUx3a/e5R\nbrvc9pVUhddKSS8G7gHeUc6OBPggcEfXdbupTmZ4QtIdkt5eYvwu1QzhB0o8TwNfBpaW19kAdJ5K\nMsX264CPlr6ImORSxEVEW2mUtt8AayStBKbbfrq0b7d90PYZYCOwaJRrV0raDWwDZgOX2/478HPg\nWklzgCHbw50XlXteDSwFDgBrJa0a5f6vAK4ANkvaBXwOmNXRv7HcbytwvqTp/zUDEdFq2RMXEa1T\nzto9AxwDXjnSbnu1pB8C1wDbJF010tV1i2c9l7QYuApYaPsfkrYALyjd36A6K/L3/Ocs3MjrGtgO\nbJe0ufzequ6wgb22F47xZ40bY0RMPpmJi4hWkTQDWA98xV2HQ0u6zPaw7S9QLWXOKV0LJF1a9sJd\nB/y667bTgOOlgJsDvHakw/ZDVDNz76fMlnW95sWS5nU0zQX+WB6fBKaWx48BMyQtLNcNSXpVx3XX\nlfZFwAnbJ/6HdEREi/S/81sAAADeSURBVGUmLiLa4LyyBDlEtbfsO0D3BwwAbpb0ZqpZun3Aj4CF\nwG+B1VR74rYCm7qu+zFwo6RHqYqtbV399wJzbR8f5TWHgNvKV4n8E/grcGPp+xawXtLpEsdS4HZJ\n06jen9cBe8vvHpf0IHA+sHzcbETEpKCuf1QjIiaVslR6i+1re7jHA8Ba2z/rW2DPvv8Wqhhr+6qU\niPj/k+XUiIizJGm6pANU31M3IQVcRMRYMhMXERER0UCZiYuIiIhooBRxEREREQ2UIi4iIiKigVLE\nRURERDRQiriIiIiIBvo3KBwJdsiuiA4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c280d9198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 3000 training step(s), test accuracy using average model is 0.9768\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, LAYER2_NODE, tf.nn.swish)\n",
    "l3 = mnistDataTrain.add_layer(l2, LAYER2_NODE, LAYER3_NODE, tf.nn.swish)\n",
    "l4 = mnistDataTrain.add_layer(l3, LAYER3_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.train(x,y,l4,mnist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-01T13:54:41.169849Z",
     "start_time": "2018-02-01T13:54:41.165153Z"
    }
   },
   "source": [
    "3层隐藏层没有两层的效果好,1层隐藏层的效果已经很好了,接下来将使用relu激活函数调参"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 增加迭代次数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:26:11.127438Z",
     "start_time": "2018-02-07T01:25:49.447960Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9288 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9452 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9568 \n",
      "After 400 training step(s), validation accuracy using average model is 0.957 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9628 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9628 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9666 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9698 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9692 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9732 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9712 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9716 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9746 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.975 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9746 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9758 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.977 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.98 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.9808 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.981 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.981 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9836 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.9838 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9832 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.9832 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.982 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.9826 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9824 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c39e53fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9801\n"
     ]
    }
   ],
   "source": [
    "# 增加到6000次\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:26:35.450441Z",
     "start_time": "2018-02-07T01:26:11.129623Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.912 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9378 \n",
      "After 300 training step(s), validation accuracy using average model is 0.942 \n",
      "After 400 training step(s), validation accuracy using average model is 0.956 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9602 \n",
      "After 600 training step(s), validation accuracy using average model is 0.968 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9684 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9666 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9686 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.971 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9684 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.97 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9726 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9734 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.974 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9738 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9742 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9742 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9758 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.978 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9746 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.978 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9776 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.98 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.98 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.98 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.98 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.979 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.978 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.981 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9804 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nzMzMqtg/r+ci+n/BhfkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c3026fa90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9803\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-01T13:55:40.061398Z",
     "start_time": "2018-02-01T13:55:40.057076Z"
    }
   },
   "source": [
    "随着迭代的次数增加 正确率和cost都稳定在 0.98 和 0.075 的位置"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 添加正则项"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:26:57.578335Z",
     "start_time": "2018-02-07T01:26:35.452371Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.925 \n",
      "After 200 training step(s), validation accuracy using average model is 0.947 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9552 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9632 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9578 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9592 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9696 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9698 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9712 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9714 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.971 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.97 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9758 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.98 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.979 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.979 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.983 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.981 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.981 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.981 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.982 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.983 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.983 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9824 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c268e9e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9823\n"
     ]
    }
   ],
   "source": [
    "# L2 正则项\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist,regularizer=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:27:21.769493Z",
     "start_time": "2018-02-07T01:26:57.580285Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9238 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9378 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9486 \n",
      "After 400 training step(s), validation accuracy using average model is 0.956 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9598 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9592 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9634 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9662 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9678 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9716 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9694 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9702 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.9724 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9748 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9734 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9742 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.977 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9766 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9788 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.9776 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.9788 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.982 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.981 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9826 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.9808 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9808 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.982 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9834 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.981 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.983 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.9828 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.9824 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9818 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nYdSvWpm6OtL3+su4Sq3NQiaPnu9cdYxorOPGrXU2Ky62v1+/RxpKap/GBhj0mwMM1Bb96uzdr470\ndXXqr+M8s9s1HUrqeg/tgC3pQFoxwEAaVlXvm9WrmbTXNnV1pO+lSvNlHc1wVZse+3EDzTZNhi1J\nNoNKNevXfbPq6EhfVT+mjGnTiMa6mhXb9JokLV2GNalmvQJSlX5kVbaps/9WHRY7KqxtIxr7ORm2\nJM3HsCbVrFdAquu+WXV0pG+TpTgdUi/L8TVJ6j/DmoZKPzqnQ//um7VUglgVy3FE43J8TZL6z9Gg\nGhptGZlXpRxtKaskqRmOBpXmUNfIvMXe8LbK6EqncZEkzbIZVEOjjpF5dd3wtkrz5XJq4pQkHTxr\n1jQ06pi82/tmSZL6zbCmodHrRqe95tEE75slSeo/w5qGRh2Td9cxI4AkSQthnzUtG1Vuy7HYybu9\nb5Ykqd+sWdOyUKUJs5cqtWaO0pQk9Zs1a2pcP25EW2V6pl6q1po5SlOS1E+GNTWqrltd9FJHx3/v\nNi9JaiPDmhpVR41XFXVNmG2tmSSpbeyzpkb161YXvW7LIUnSUmVYU6P6dasLO/5LkparRsNaRJwe\nEZMRcWNEnDPH+jURcVlEXBsR2yNiVbn85yLi6o6fH0XEc5osq5pRV41Xlfk4RzeOsuGmDZy27zQ2\n3LTBoCZJWhYaC2sRcQhwHvBMYD1wVkSs79rsHcD7M/Mk4FzgLQCZeXlmnpyZJwNPBfYAn2mqrGpO\nHTVeddyWQ5KkparJAQanADdm5hRARFwAnAFc37HNeuC15ePLgY/NcZwXAJ/KzD0NllUN6tVpv9et\nPfo1SEGSpDZqshn0OOCWjue7ymWdrgGeXz5+LnBURBzTtc2ZwIfmOkFEbIqIiYiY2L17dw1FVr85\nH6ckSfNrMqzFHMuy6/nrgVMj4irgVODrwN57DhDxU8CjgEvmOkFmbs3M8cwcX7lyZT2lVl85H6ck\nSfNrMqztAo7veL4KuLVzg8y8NTOfl5mPATaXy77XsckLgY9m5n81WE4NUNX5OL0thyRpWDUZ1q4A\nToyIEyLiMIrmzIs7N4iIYyNitgxvAM7vOsZZHKAJVMuD83FKkjS/xgYYZObeiDibognzEOD8zLwu\nIs4FJjLzYuA04C0RkcDngFfP7h8Raylq5j7bVBm1eIud99P5OCVJml9kdncjW5rGx8dzYmJi0MUY\nKt3zfkIRtA7m1hzOxylJGiYRcWVmjlfa1rCmg7Vj7Y655+NcM8KGmzYMoESSJC0NCwlrTjelg+Yt\nNSRJap5hTQfNW2pIktQ8w5oOqNd8nN5SQ5Kk5jU53ZSWsO7BA7MzCwD3dP6f/dfBAZIkNccBBpqT\ngwckSWqOAwy0aA4ekCSpHQxrmpODByRJagfDmubk4AFJktrBsKY5OR+nJEnt4GhQHZDzcUqSNHjW\nrA2pXvdQkyRJ7WDN2hCqcg81SZLUDtasDaGpzVP3BLVZ+/bsY2rz1IBKJEmSDsSwNoS8h5okSUuH\nYW0IeQ81SZKWDsPaEPIeapIkLR2GtSHkPdQkSVo6HA06pLyHmiRJS4M1a5IkSS1mWJMkSWqxRsNa\nRJweEZMRcWNEnDPH+jURcVlEXBsR2yNiVce61RHxmYi4ISKuj4i1TZZVkiSpjRoLaxFxCHAe8Exg\nPXBWRKzv2uwdwPsz8yTgXOAtHeveD7w9Mx8BnALc1lRZlxqnipIkaXg0WbN2CnBjZk5l5l3ABcAZ\nXdusBy4rH18+u74MdYdm5qUAmXlnZu5psKxLxuxUUTM7ZyB/PFWUgU2SpOWpZ1iLiLMj4uiDOPZx\nwC0dz3eVyzpdAzy/fPxc4KiIOAZ4GPDdiPhIRFwVEW8va+q6y7YpIiYiYmL37t0HUcSlp+pUUda+\nSZK0PFSpWftJ4IqIuLDsgxYVjz3Xdtn1/PXAqRFxFXAq8HVgL8UtRZ5crn8cMAa8/F4Hy9yameOZ\nOb5y5cqKxVraqkwVZe2bJEnLR8+wlpm/B5wI/BVFYPqPiPijiHhIj113Acd3PF8F3Np17Fsz83mZ\n+Rhgc7nse+W+V5VNqHuBjwGPrfaSlrcqU0U5UbskSctHpT5rmZnAN8ufvcDRwEUR8bZ5drsCODEi\nToiIw4AzgYs7N4iIYyNitgxvAM7v2PfoiJitLnsqcH2Vsi53VaaKcqJ2SZKWjyp91l4TEVcCbwP+\nFXhUZr4K+Bl+3N/sXsoasbOBS4AbgAsz87qIODcinl1udhowGRFfBUaBLeW+d1M0gV4WEV+maFL9\ni4N7ictLlaminKhdkqTlI4pKs3k2iDgX+KvM3DnHukdk5g1NFW4hxsfHc2JiYtDFaIXZPmudTaEr\njljh/J+SJLVERFyZmeNVtq3SDPpJ4PaOgx8VEY8HaEtQ0/6cqF2SpOWjykTu72H/zv0/mGOZWsaJ\n2iVJWh6q1KxFdrSVZuY+qoU8SZIkLVKVsDZVDjK4T/nzW4D3gJAkSeqDKmHtN4AnUtywdhfweGBT\nk4UaZs48IEmSOvVszszM2yjukaaGdY/inJ15ALD/mSRJQ6pnWIuIw4FXAo8EDp9dnpmvaLBcQ2m+\nmQcMa5IkDacqzaAfoJgf9BeAz1JMG3VHk4UaVs48IEmSulUJaw/NzN8HfpCZ7wN+CXhUs8UaTs48\nIEmSulUJa/9V/vvdiPhp4AHA2sZKNMSqzPspSZKGS5X7pW2NiKOB36OYiP1I4PcbLdWQmu2XNrV5\nipmbZxhZPcLYljH7q0mSNMTmDWsRsQL4fmZ+B/gcYBVPw5x5QJIkdZq3GbScreDsPpVFkiRJXar0\nWbs0Il4fEcdHxINmfxovmSRJkir1WZu9n9qrO5YlNolKkiQ1rsoMBif0oyCSJEm6tyozGPzqXMsz\n8/31F0eSJEmdqjSDPq7j8eHA04AvAYY1SZKkhlVpBv1/Op9HxAMopqCSJElSw6qMBu22Bzix7oJI\nkiTp3qr0WfsHitGfUIS79cCFTRZKkiRJhSp91t7R8XgvsDMzd1U5eEScDrwLOAT4y8x8a9f6NcD5\nwErgduAls8eOiLuBL5eb3pyZz65yTkmSpOWkSli7GfhGZv4IICLuGxFrM/Om+XaKiEOA84CfB3YB\nV0TExZl5fcdm7wDen5nvi4inAm8BXlqu+2FmnrywlyNJkrS8VOmz9nfAvo7nd5fLejkFuDEzpzLz\nLuAC4IyubdYDl5WPL59jvSRJ0lCrEtYOLcMWAOXjwyrsdxxwS8fzXeWyTtcAzy8fPxc4KiKOKZ8f\nHhETEfH5iHhOhfNJkiQtO1XC2u6IuKe/WEScAXyrwn4xx7Lsev564NSIuAo4Ffg6Rb84gNWZOQ68\nGHhnRDzkXieI2FQGuondu3dXKJIkSdLSUiWs/Qbwxoi4OSJuBv4n8OsV9tsFHN/xfBVwa+cGmXlr\nZj4vMx8DbC6XfW92XfnvFLAdeEz3CTJza2aOZ+b4ypUrKxRpsKa3TbNj7Q62r9jOjrU7mN42Pegi\nSZKklqtyU9yvAU+IiCOByMw7Kh77CuDEiDiBosbsTIpasntExLHA7Zm5D3gDxchQIuJoYE9mzpTb\nPAl4W8XzttL0tmkmN02yb0/R/W9m5wyTmyYBGN04OsiiSZKkFutZsxYRfxQRD8zMOzPzjog4OiL+\nsNd+mbkXOBu4BLgBuDAzr4uIczuaVU8DJiPiq8AosKVc/ghgIiKuoRh48NauUaRLztTmqXuC2qx9\ne/YxtXlqQCWSJElLQWR2dyPr2iDiqrKZsnPZlzLzsY2WbIHGx8dzYmJi0MU4oO0rtt+7xx5AwGn7\nTutzaSRJ0iBFxJVl3/yeqvRZOyQiRjoOfl9gZJ7tNYeR1XNfsgMtlyRJgmph7W+ByyLilRHxSuBS\n4H3NFmv5Gdsyxooj9r/cK45YwdiWsQGVSJIkLQVVBhi8LSKuBZ5OcTuOTwNrmi7YcjM7iGBq8xQz\nN88wsnqEsS1jDi6QJEnzqjLdFMA3KWYxeCHwn8DfN1aiZWx046jhTJIkLcgBw1pEPIzidhtnAd8G\nPkwxIOHn+lQ2SZKkoTdfzdpXgH8GfjkzbwSIiNf2pVSSJEkC5h9g8HyK5s/LI+IvIuJpzD2FlCRJ\nkhpywLCWmR/NzBcBD6eY7um1wGhEvCcintGn8kmSJA21nrfuyMwfZOa2zHwWxfyeVwPnNF4ySZIk\nVbrP2j0y8/bMfG9mPrWpAkmSJOnHFhTWJEmS1F+GNUmSpBYzrEmSJLWYYU2SJKnFDGuSJEktZliT\nJElqMcOaJElSixnWJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFGg1rEXF6RExGxI0Rcc4c\n69dExGURcW1EbI+IVV3r7x8RX4+IdzdZTkmSpLZqLKxFxCHAecAzgfXAWRGxvmuzdwDvz8yTgHOB\nt3St/9/AZ5sqoyRJUts1WbN2CnBjZk5l5l3ABcAZXdusBy4rH1/euT4ifgYYBT7TYBklSZJarcmw\ndhxwS8fzXeWyTtcAzy8fPxc4KiKOiYgVwP8L/M58J4iITRExERETu3fvrqnYkiRJ7dFkWIs5lmXX\n89cDp0bEVcCpwNeBvcBvAp/MzFuYR2ZuzczxzBxfuXJlHWWWJElqlUMbPPYu4PiO56uAWzs3yMxb\ngecBRMSRwPMz83sRsQF4ckT8JnAkcFhE3JmZ9xqkIEmStJw1GdauAE6MiBMoaszOBF7cuUFEHAvc\nnpn7gDcA5wNk5saObV4OjC+FoDa9bZqpzVPM3DzDyOoRxraMMbpxdNDFkiRJS1hjzaCZuRc4G7gE\nuAG4MDOvi4hzI+LZ5WanAZMR8VWKwQRbmipP06a3TTO5aZKZnTOQMLNzhslNk0xvmx500SRJ0hIW\nmd3dyJam8fHxnJiYGNj5d6zdUQS1LiNrRthw04YBlEiSJLVVRFyZmeNVtnUGg5rM3HzvoDbfckmS\npCoMazUZWT2yoOWSJElVGNZqMrZljBVH7H85VxyxgrEtYwMqkSRJWg4MazUZ3TjKuq3rGFkzAlH0\nVVu3dZ2jQSVJ0qI0eeuOoTNq1fVdAAAenklEQVS6cdRwJkmSamXNmiRJUosZ1iRJklrMsCZJktRi\nhjVJkqQWM6xJkiS1mGFNkiSpxQxrkiRJLWZYkyRJajHDmiRJUosZ1iRJklrMsCZJktRihjVJkqQW\nM6xJkiS1mGFNkiSpxQxrkiRJLWZYkyRJarFGw1pEnB4RkxFxY0ScM8f6NRFxWURcGxHbI2JVx/Ir\nI+LqiLguIn6jyXJKkiS1VWNhLSIOAc4DngmsB86KiPVdm70DeH9mngScC7ylXP4N4ImZeTLweOCc\niHhwU2WVJElqqyZr1k4BbszMqcy8C7gAOKNrm/XAZeXjy2fXZ+ZdmTlTLh9puJySJEmt1WQIOg64\npeP5rnJZp2uA55ePnwscFRHHAETE8RFxbXmMP87MW7tPEBGbImIiIiZ2795d+wuQJEkatCbDWsyx\nLLuevx44NSKuAk4Fvg7sBcjMW8rm0YcCL4uI0XsdLHNrZo5n5vjKlSvrLb0kSVILNBnWdgHHdzxf\nBexXO5aZt2bm8zLzMcDmctn3urcBrgOe3GBZJUmSWqnJsHYFcGJEnBARhwFnAhd3bhARx0bEbBne\nAJxfLl8VEfctHx8NPAmYbLCskiRJrdRYWMvMvcDZwCXADcCFmXldRJwbEc8uNzsNmIyIrwKjwJZy\n+SOAL0TENcBngXdk5pebKqskSVJbRWZ3N7KlaXx8PCcmJgZdDEmSpJ4i4srMHK+yrbfEkCRJajHD\nmiRJUosZ1iRJklrMsCZJktRihjVJkqQWM6xJkiS1mGFNkiSpxQxrkiRJLWZYkyRJajHDmiRJUosZ\n1iqa3jbNjrU72L5iOzvW7mB62/SgiyRJkobAoYMuwFIwvW2ayU2T7NuzD4CZnTNMbpoEYHTj6CCL\nJkmSljlr1iqY2jx1T1CbtW/PPqY2Tw2oRJIkaVgY1iqYuXlmQcslSZLqYlirYGT1yIKWS5Ik1cWw\nVsHYljFWHLH/pVpxxArGtowNqESSJGlYGNYqGN04yrqt6xhZMwIBI2tGWLd1nYMLJElS4xwNWtHo\nxlHDmSRJ6jtr1iRJklrMsCZJktRihjVJkqQWM6xJkiS1WGTmoMtQi4jYDezsw6mOBb7Vh/MMI69t\ns7y+zfHaNsvr2xyvbbPmu75rMnNllYMsm7DWLxExkZnjgy7HcuS1bZbXtzle22Z5fZvjtW1WXdfX\nZlBJkqQWM6xJkiS1mGFt4bYOugDLmNe2WV7f5nhtm+X1bY7Xtlm1XF/7rEmSJLWYNWuSJEktZliT\nJElqMcOaJElSixnWJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFDGuSJEktZliTJElqMcOa\nJElSixnWJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFDGuSJEktZliTJElqMcOaJElSixnW\nJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFDGuSJEktZliTJElqMcOaJElSixnWJEmSWsyw\nJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFDGuSJEktduigC1CXY489NteuXTvoYkiSJPV05ZVXfisz\nV1bZdtmEtbVr1zIxMTHoYkiSJPUUETurbmszqCRJUosZ1iRJklrMsCZJktRihjVJkqQWM6xVtG16\nmrU7drBi+3bW7tjBtunpQRdJkiQNgWUzGrRJ26an2TQ5yZ59+wDYOTPDpslJADaOjg6yaJIkaZmz\nZq2CzVNT9wS1WXv27WPz1NSASiRJkoaFYa2Cm2dmFrRckiSpLoa1ClaPjCxouSRJUl0MaxVsGRvj\niBX7X6ojVqxgy9jYgEokSZKGhWGtgo2jo2xdt441IyMEsGZkhK3r1jm4QJIkNc7RoBVtHB01nEmS\npL6zZk2SJKnFDGuSJEktZliTJElqMcOaJElSixnWJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2S\nJKnFDGuSJEktZliTJElqMcOaJElSixnWJEmSWsywJkmS1GKGNUmSpBYzrEmSJLWYYU2SJKnFDGuS\nJEktZliTJElqMcOaJElSixnWJEmSWsywJkmS1GKNhrWIOD0iJiPixog4Z471vx0R10fEtRFxWUSs\n6Vh3d0RcXf5c3GQ5JUmS2urQpg4cEYcA5wE/D+wCroiIizPz+o7NrgLGM3NPRLwKeBvwonLdDzPz\n5KbKJ0mStBQ0WbN2CnBjZk5l5l3ABcAZnRtk5uWZuad8+nlgVYPlkSRJWnKaDGvHAbd0PN9VLjuQ\nVwKf6nh+eERMRMTnI+I5c+0QEZvKbSZ27969+BJLkiS1TGPNoEDMsSzn3DDiJcA4cGrH4tWZeWtE\njAH/FBFfzsyv7XewzK3AVoDx8fE5jy1JkrSUNVmztgs4vuP5KuDW7o0i4unAZuDZmTkzuzwzby3/\nnQK2A49psKySJEmt1GRYuwI4MSJOiIjDgDOB/UZ1RsRjgPdSBLXbOpYfHREj5eNjgScBnQMTJEmS\nhkJjzaCZuTcizgYuAQ4Bzs/M6yLiXGAiMy8G3g4cCfxdRADcnJnPBh4BvDci9lEEyrd2jSKVJEka\nCpG5PLp6jY+P58TExKCLIUmS1FNEXJmZ41W2dQYDSZKkFjOsSZIktZhhTZIkqcUMa5IkSS1mWJMk\nSWoxw5okSVKLGdYkSZJazLAmSZLUYoY1SZKkFjOs1Wjb9DRrd+xgxfbtrN2xg23T04MukiRJWuIa\nmxt02GybnmbT5CR79u0DYOfMDJsmJwHYODo6yKJJkqQlzJq1mmyemronqM3as28fm6emBlQiSZK0\nHBjWanLzzMyClkuSJFVhWKvJ6pGRBS2XJEmqwrBWky1jYxyxYv/LecSKFWwZGxtQiSRJ0nJgWKvJ\nxtFRtq5bx5qREQJYMzLC1nXrHFwgSZIWxdGgNdo4Omo4kyRJtbJmTZIkqcUMa5IkSS1mWJMkSWox\nw5okSVKLGdYkSZJazLAmSZLUYoY1SZKkFjOsSZIktZhhTZIkqcUMa5IkSS1mWJMkSWoxw5okSVKL\nGdYkSZJazLAmSZLUYoY1SZKkFjOsSZIktVijYS0iTo+IyYi4MSLOmWP9b0fE9RFxbURcFhFrOta9\nLCL+o/x5WZPllCRJaqvGwlpEHAKcBzwTWA+cFRHruza7ChjPzJOAi4C3lfs+CHgT8HjgFOBNEXF0\nU2WVJElqqyZr1k4BbszMqcy8C7gAOKNzg8y8PDP3lE8/D6wqH/8CcGlm3p6Z3wEuBU5vsKySJEmt\n1GRYOw64peP5rnLZgbwS+NRC9o2ITRExERETu3fvXmRxJUmS2qfJsBZzLMs5N4x4CTAOvH0h+2bm\n1swcz8zxlStXHnRBJUmS2qrJsLYLOL7j+Srg1u6NIuLpwGbg2Zk5s5B9l5pt09Os3bGDFdu3s3bH\nDrZNTw+6SJIkqeWaDGtXACdGxAkRcRhwJnBx5wYR8RjgvRRB7baOVZcAz4iIo8uBBc8oly1Z26an\n2TQ5yc6ZGRLYOTPDpslJA5skSZpXY2EtM/cCZ1OErBuACzPzuog4NyKeXW72duBI4O8i4uqIuLjc\n93bgf1MEviuAc8tlS9bmqSn27Nu337I9+/axeWpqQCWSJElLwaFNHjwzPwl8smvZH3Q8fvo8+54P\nnN9c6frr5pmZBS2XJEkCZzDom9UjIwtaLkmSBIa1vtkyNsYRK/a/3EesWMGWsbEBlUiSJC0FhrU+\n2Tg6ytZ161gzMkIAa0ZG2LpuHRtHRwddNEmS1GKN9lnT/jaOjhrOJEnSglSqWYuID1RZJkmSpHpV\nbQZ9ZOeTcpL2n6m/OJIkSeo0b1iLiDdExB3ASRHx/fLnDuA24ON9KaEkSdIQmzesZeZbMvMo4O2Z\nef/y56jMPCYz39CnMkqSJA2tqs2gn4iI+0Ex6XpE/ElErGmwXJIkSaJ6WHsPsCciHg38LrATeH9j\npZIkSRJQPaztzcwEzgDelZnvAo5qrliSJEmC6vdZuyMi3gC8FHhyORr0Ps0VS5IkSVC9Zu1FwAzw\nisz8JnAc8PbGSiVJkiSgYlgrA9o24AER8SzgR5lpnzVJkqSGVZ3B4IXAF4FfAV4IfCEiXtBkwSRJ\nklS9z9pm4HGZeRtARKwE/i9wUVMFkyRJUvU+aytmg1rp2wvYV5IkSQepas3apyPiEuBD5fMXAZ9s\npkiSJEmaNW9Yi4iHAqOZ+TsR8TzgZ4EAdlAMOJAkSVKDejVlvhO4AyAzP5KZv52Zr6WoVXtn04WT\nJEkadr3C2trMvLZ7YWZOAGsbKdGQ2zY9zdodO1ixfTtrd+xg2/T0oIskSZIGqFeftcPnWXffOgui\nIqhtmpxkz759AOycmWHT5CQAG0dHB1k0SZI0IL1q1q6IiF/rXhgRrwSubKZIw2vz1NQ9QW3Wnn37\n2Dw1NaASSZKkQetVs/Y/gI9GxEZ+HM7GgcOA5zZZsGF088zMgpZLkqTlb96wlpnTwBMj4ueAny4X\n/2Nm/lPjJRtCq0dG2DlHMFs9MjKA0kiSpDaodJ+1zLwcuLzhsgy9LWNj+/VZAzhixQq2jI0NsFSS\nJGmQnIWgRTaOjrJ13TrWjIwQwJqREbauW+fgAkmShljVGQzUJxtHRw1nkiTpHtasSZIktZhhbQny\nxrmSJA0Pm0GXGG+cK0nScLFmbYmpeuNca98kSVoerFlbYqrcONfaN0mSlo9Ga9Yi4vSImIyIGyPi\nnDnWPyUivhQReyPiBV3r7o6Iq8ufi5ss51JyoBvkdi532ipJkpaPxsJaRBwCnAc8E1gPnBUR67s2\nuxl4OfDBOQ7xw8w8ufx5dlPlXGq2jI1xxIr937buG+c6bZUkSctHkzVrpwA3ZuZUZt4FXACc0blB\nZt6UmdcC++Y6gO6tyo1zq9S+SZKkpaHJPmvHAbd0PN8FPH4B+x8eERPAXuCtmfmx7g0iYhOwCWD1\n6tWLKOrS0uvGuU5bJUnS8tFkzVrMsSwXsP/qzBwHXgy8MyIecq+DZW7NzPHMHF+5cuXBlnPZcdoq\nSZKWjyZr1nYBx3c8XwXcWnXnzLy1/HcqIrYDjwG+VmcBlzOnrZIkaXlosmbtCuDEiDghIg4DzgQq\njeqMiKMjYqR8fCzwJOD6xkoqSZLUUo2FtczcC5wNXALcAFyYmddFxLkR8WyAiHhcROwCfgV4b0Rc\nV+7+CGAiIq4BLqfos2ZYkyRJQycyF9KNrL3Gx8dzYmJi0MWQJEnqKSKuLPvm9+R0U0PK6agkSVoa\nnG5qCDkdlSRJS4c1a0PI6agkSVo6DGtDyOmoJElaOgxrQ8jpqCRJWjoMa0OoymTwkiSpHQxrQ8jp\nqCRJWjocDTqknI5KkqSlwZo1SZKkFjOsSZIktZhhTZIkqcUMa5IkSS1mWNMBOX+oJEmD52hQzcn5\nQyVJagdr1jQn5w+VJKkdDGuak/OHSpLUDoY1zcn5QyVJagfDmuZUdf5QByFIktQsBxhoTrODCDZP\nTXHzzAyrR0bYMja23+ACByFIktS8yMxBl6EW4+PjOTExMehiDJW1O3awc44+bGtGRrhpw4YBlEiS\npKUhIq7MzPEq29oMqoPmIARJkppnWNNBcxCCJEnNM6zpoDkIQZKk5hnWdNA2jo6ydd061oyMEBR9\n1bauWzfnIISdMzMkPx6E0BnYqoQ5A58kaVg5wECN6jUIoXtEKRS1c52hr8o2kiQtJQ4wUGv0GoRQ\nZVorp76SJA0zw5oa1WsQQpURpY46lSQNM8OaGtVrEEKVEaWOOpUkDTPDmhrVaxBClRGlVUedSpK0\nHDndlBq3cXT0gAMBqkxrVWUbSZKWK0eDSpIk9ZmjQSVJkpaJRsNaRJweEZMRcWNEnDPH+qdExJci\nYm9EvKBr3csi4j/Kn5c1WU4tD944V5K0HDUW1iLiEOA84JnAeuCsiFjftdnNwMuBD3bt+yDgTcDj\ngVOAN0XE0U2VVUtflZkSZrdbbKAzFEqS+qnJmrVTgBszcyoz7wIuAM7o3CAzb8rMa4F9Xfv+AnBp\nZt6emd8BLgVOb7CsWuKq3Di3aqCbTx3HkCRpIZoMa8cBt3Q831Uua3pfDaEqN86tYyYEZ1OQJPVb\nk2Et5lhWdehppX0jYlNETETExO7duxdUOC0vVW6cW8dMCM6mIEnqtybD2i7g+I7nq4Bb69w3M7dm\n5nhmjq9cufKgC6qlr8qNc6sEul790ZxNQZLUb02GtSuAEyPihIg4DDgTuLjivpcAz4iIo8uBBc8o\nl0lz6jVTAvQOdFX6ozmbgiSp3xq9KW5E/CLwTuAQ4PzM3BIR5wITmXlxRDwO+ChwNPAj4JuZ+chy\n31cAbywPtSUz/3q+c3lTXFWxbXr6gDMhrN2xg51zNGeuGRnhpg0bKh1jIdtIkobXQm6K6wwGUmnF\n9u1zdqoMYN9pp1U+zmwNXedAhCNWrNivps/AJ0nDzRkMpINQV3+0XiNGqzS39vO+cZKkdjOsSaW6\n+qP1GjFa5fYf/bpvnCSp/QxrUqnKIIUqetXQVbn9R7/uGydJar9DB10AqU02jo4uul/YlrGxOfus\nzdbQrR4ZmXMgQ2fIq7JN1Xu+9avvm33s5uZ1kbRY1qxJNetVQ1elubXO+8ZV6R9Xx3ypNsnem9dF\nUh0cDSoNQB2jQauMOu11O5Iqx6iirtueLLdaqKrXRdLwWchoUJtBpQGo0tzaa5vZdfOFm8UMdlhI\niKrSJNsdDGdrmWZfS6/1/VZHcHR6Mkl1sBlUWsI2jo5y04YN7DvtNG7asOFeYaKOwQ5VmvKqNMn2\nGhBR54CJxTbt1tV8WdftYLxFizTcDGvSMtar71sdIavKeaB3MKyrFqqOe9TVFRzruB2M/d4kGdak\nZayOwQ5VQlSV2570CoZVa6F61TLVcY+6uoJjHbeDqRocrX2Tli/7rEnL3Hx936r0e6tyG5Fe54He\ntzTptR5693uDxd+jbuPoaOXXXKVf22JvB1NHf8CFlFdS+1izJg25Xv3e6prZoVctU5VaqCq1TFVq\n6HoFoCqvuc7myflqxepqqh7W5lRrHLUcGNYkzauumR1mjzVfMOy1vkotUx33qKsrOFbRK0TV1VTd\nz+bUfgWkXufpZ0BdjqFwOb6mpcpmUEk91TGzQx2qNE9Wadqt0uTa6zXX1a+tV5NsXU3VdTWnLvT+\nf4u5Bct856pynrpuTVOlnP14zXWVt8ox+tm0bvN8b9asSVoyqjbJVqnBW2xtYV235ag6gGOxTdV1\nNKdWqanqV41jlfPUdWua2e0WO3q4jprAOmYlqet97FdZqlrONYGGNUlLRj+bZHupqy9fHaGvynWp\nozm1roAEix/VW+U8/ervV1corFKWfgXqOprW2xTuZ7fpFebaGvgMa5KWlMWGrDrLUUdwrHMAx2Jr\nE+u4iXJdc9b2OleV8/Srv19dobBKWfoVqOsYqNOmcF9XreWgGNYk6SDVERzrrC1cbHnruIlylYBU\nx6jeKuepI6BCPaOH6wpI/QrUdTSttync11FrOUiGNUkasKVSW1hXQKpjVG/VkNuP/n51hcIqZelX\noK6jab1N4b6OWstBcjSoJOkei72Jcq9jQH2jeusYpdyv0cNVj9GrLL22qes8VV5Tv8pSNdzPd64q\nn7mqN8MehMjMQZehFuPj4zkxMTHoYkiSeui+LQQUX6xNNf/WYSndoqJNt8Kooyxrd+yYM0StGRnh\npg0bKp2rymeu35/LiLgyM8crbWtYkyT1W5sChdqtrhDVr3vYVWVYkyRJy8ZyDPcLCWv2WZMkSa3W\nlllUBsXRoJIkSS1mWJMkSWoxw5okSVKLGdYkSZJabNmMBo2I3cDOPpzqWOBbfTjPMPLaNsvr2xyv\nbbO8vs3x2jZrvuu7JjNXVjnIsglr/RIRE1WH2mphvLbN8vo2x2vbLK9vc7y2zarr+toMKkmS1GKG\nNUmSpBYzrC3c1kEXYBnz2jbL69scr22zvL7N8do2q5bra581SZKkFrNmTZIkqcUMa5IkSS1mWKso\nIk6PiMmIuDEizhl0eZa6iDg/Im6LiH/vWPagiLg0Iv6j/PfoQZZxqYqI4yPi8oi4ISKui4jfKpd7\nfWsQEYdHxBcj4pry+v6vcvkJEfGF8vp+OCIOG3RZl6qIOCQiroqIT5TPvbY1iYibIuLLEXF1REyU\ny/zdUIOIeGBEXBQRXyl//26o69oa1iqIiEOA84BnAuuBsyJi/WBLteT9DXB617JzgMsy80TgsvK5\nFm4v8LrMfATwBODV5efV61uPGeCpmflo4GTg9Ih4AvDHwJ+W1/c7wCsHWMal7reAGzqee23r9XOZ\neXLH/b/83VCPdwGfzsyHA4+m+AzXcm0Na9WcAtyYmVOZeRdwAXDGgMu0pGXm54DbuxafAbyvfPw+\n4Dl9LdQykZnfyMwvlY/voPiFcRxe31pk4c7y6X3KnwSeClxULvf6HqSIWAX8EvCX5fPAa9s0fzcs\nUkTcH3gK8FcAmXlXZn6Xmq6tYa2a44BbOp7vKpepXqOZ+Q0oAgfwEwMuz5IXEWuBxwBfwOtbm7KZ\n7mrgNuBS4GvAdzNzb7mJvyMO3juB3wX2lc+PwWtbpwQ+ExFXRsSmcpm/GxZvDNgN/HXZhP+XEXE/\narq2hrVqYo5l3vNErRYRRwJ/D/yPzPz+oMuznGTm3Zl5MrCKoub9EXNt1t9SLX0R8Szgtsy8snPx\nHJt6bQ/ekzLzsRTdel4dEU8ZdIGWiUOBxwLvyczHAD+gxuZkw1o1u4DjO56vAm4dUFmWs+mI+CmA\n8t/bBlyeJSsi7kMR1LZl5kfKxV7fmpXNHNsp+gY+MCIOLVf5O+LgPAl4dkTcRNHd5KkUNW1e25pk\n5q3lv7cBH6X4Y8PfDYu3C9iVmV8on19EEd5qubaGtWquAE4sRyQdBpwJXDzgMi1HFwMvKx+/DPj4\nAMuyZJV9fP4KuCEz/6Rjlde3BhGxMiIeWD6+L/B0in6BlwMvKDfz+h6EzHxDZq7KzLUUv2f/KTM3\n4rWtRUTcLyKOmn0MPAP4d/zdsGiZ+U3glohYVy56GnA9NV1bZzCoKCJ+keIvvEOA8zNzy4CLtKRF\nxIeA04BjgWngTcDHgAuB1cDNwK9kZvcgBPUQET8L/DPwZX7c7+eNFP3WvL6LFBEnUXQUPoTiD94L\nM/PciBijqA16EHAV8JLMnBlcSZe2iDgNeH1mPstrW4/yOn60fHoo8MHM3BIRx+DvhkWLiJMpBsYc\nBkwB/43ydwSLvLaGNUmSpBazGVSSJKnFDGuSJEktZliTJElqMcOaJElSixnWJEmSWsywJmlJiIi7\nI+LqiLguIq6JiN+OiBXluvGI+LODPO5NEXFsDeV7RUR8OSKujYh/j4gzyuUvj4gHL/b4kobXob03\nkaRW+GE5xRMR8RPAB4EHAG/KzAlgYlAFKycf3ww8NjO/V071tbJc/XKKG496131JB8WaNUlLTjlV\nzibg7CicFhGfAIiIU8sauKvLCZWPKtd/LiI+GhHXR8Sfz9bKdYqIj5UTXF83O8l1RLwyIv60Y5tf\ni4g/6dr1J4A7gDvL8t2Zmf8ZES8AxoFtZXnuGxE/ExGfLc9zScdUNNsj4p0R8W9lzdwpDVw6SUuQ\nYU3SkpSZUxS/w36ia9XrgVeXtXBPBn5YLj8FeB3wKOAhwPPmOOwrMvNnKALWa8o7u19AMV/lfcpt\n/hvw1137XUMxE8d/RsRfR8Qvl2W8iKLGb2NZnr3A/we8oDzP+UDnbCj3y8wnAr9ZrpMkw5qkJS3m\nWPavwJ9ExGuAB2bm3nL5FzNzKjPvBj4E/Owc+74mIq4BPg8cD5yYmT8A/gl4VkQ8HLhPZn65c6fy\nmKdTzF/5VeBPI+LNcxx/HfDTwKURcTXwexQTk8/6UHm8zwH3n52DVNJws8+apCWpnOfwbuA24BGz\nyzPzrRHxj8AvAp+PiKfPruo6xH7Py7konw5syMw9EbEdOLxc/ZcU86t+hXvXqs2eN4EvAl+MiEvL\n7d7cXWzguszccICXNW8ZJQ0na9YkLTkRsRL4c+Dd2TXBcUQ8JDO/nJl/TNEE+fBy1SkRcULZV+1F\nwL90HfYBwHfKoPZw4AmzKzLzCxQ1bS+mrP3qOueDI/7/du6XJYIgjOP49xcuGPxTfBUWsR1Y7EbB\nbjIafBEGQTEZBZvFImgRxKBmQUGb2XAcBm1j2AnnIYeg4qrfTxpmdmaHCcuzzwyTuYGqWeChlp+A\n8Vq+A6aTdGu/TpKZgX7LtX4e6JdS+h9YDkl/nJk1Sb/FWN067NCc/doHhg/6A6wlWaDJut0Cx0AX\nuAQ2aM6snQOHQ/1OgNUk1zRB1dVQ+wEwW0rpvfPODrBZr+h4AR6B1dq2B+wmea7zWAJ2kkzSfIO3\ngZv6bC/JBTABrIxcDUn/RoZ+SiXpz6lbnOullMVPjHEEbJVSTr9sYm/HP6OZ449dQSKpndwGlaQR\nkkwluae55+1bAjVJGsXMmiRJUouZWZMkSWoxgzVJkqQWM1iTJElqMYM1SZKkFjNYkyRJarFX/ftH\nYv/r4LYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c26b04dd8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9802\n"
     ]
    }
   ],
   "source": [
    "# L2 正则项\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist,regularizer=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  降低学习率(解决神经元死亡的问题)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:27:46.340600Z",
     "start_time": "2018-02-07T01:27:21.771599Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9008 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9248 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9322 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9448 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9508 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9506 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9542 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9576 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9622 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.963 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9648 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.966 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.967 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9684 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9666 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.9706 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.9694 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.9706 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9698 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.9716 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9754 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9754 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9744 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.976 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9746 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.975 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9748 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.977 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.9774 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.9784 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.979 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.9768 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.9782 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.9806 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.98 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.981 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9794 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c27af3c50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.979\n"
     ]
    }
   ],
   "source": [
    "# learning rate 0.5->0.3\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.setLearningRate(0.3)\n",
    "mnistDataTrain.train(x,y,l2,mnist,regularizer=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:28:09.430237Z",
     "start_time": "2018-02-07T01:27:46.342751Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.904 \n",
      "After 200 training step(s), validation accuracy using average model is 0.9356 \n",
      "After 300 training step(s), validation accuracy using average model is 0.9494 \n",
      "After 400 training step(s), validation accuracy using average model is 0.9552 \n",
      "After 500 training step(s), validation accuracy using average model is 0.9582 \n",
      "After 600 training step(s), validation accuracy using average model is 0.9612 \n",
      "After 700 training step(s), validation accuracy using average model is 0.9668 \n",
      "After 800 training step(s), validation accuracy using average model is 0.9642 \n",
      "After 900 training step(s), validation accuracy using average model is 0.9696 \n",
      "After 1000 training step(s), validation accuracy using average model is 0.9682 \n",
      "After 1100 training step(s), validation accuracy using average model is 0.9686 \n",
      "After 1200 training step(s), validation accuracy using average model is 0.9722 \n",
      "After 1300 training step(s), validation accuracy using average model is 0.971 \n",
      "After 1400 training step(s), validation accuracy using average model is 0.9712 \n",
      "After 1500 training step(s), validation accuracy using average model is 0.9736 \n",
      "After 1600 training step(s), validation accuracy using average model is 0.972 \n",
      "After 1700 training step(s), validation accuracy using average model is 0.976 \n",
      "After 1800 training step(s), validation accuracy using average model is 0.977 \n",
      "After 1900 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 2000 training step(s), validation accuracy using average model is 0.976 \n",
      "After 2100 training step(s), validation accuracy using average model is 0.9756 \n",
      "After 2200 training step(s), validation accuracy using average model is 0.9762 \n",
      "After 2300 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 2400 training step(s), validation accuracy using average model is 0.9748 \n",
      "After 2500 training step(s), validation accuracy using average model is 0.9776 \n",
      "After 2600 training step(s), validation accuracy using average model is 0.9772 \n",
      "After 2700 training step(s), validation accuracy using average model is 0.9788 \n",
      "After 2800 training step(s), validation accuracy using average model is 0.9778 \n",
      "After 2900 training step(s), validation accuracy using average model is 0.9788 \n",
      "After 3000 training step(s), validation accuracy using average model is 0.9788 \n",
      "After 3100 training step(s), validation accuracy using average model is 0.979 \n",
      "After 3200 training step(s), validation accuracy using average model is 0.9802 \n",
      "After 3300 training step(s), validation accuracy using average model is 0.9764 \n",
      "After 3400 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 3500 training step(s), validation accuracy using average model is 0.979 \n",
      "After 3600 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 3700 training step(s), validation accuracy using average model is 0.98 \n",
      "After 3800 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 3900 training step(s), validation accuracy using average model is 0.9792 \n",
      "After 4000 training step(s), validation accuracy using average model is 0.9786 \n",
      "After 4100 training step(s), validation accuracy using average model is 0.979 \n",
      "After 4200 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 4300 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 4400 training step(s), validation accuracy using average model is 0.9796 \n",
      "After 4500 training step(s), validation accuracy using average model is 0.981 \n",
      "After 4600 training step(s), validation accuracy using average model is 0.9804 \n",
      "After 4700 training step(s), validation accuracy using average model is 0.9794 \n",
      "After 4800 training step(s), validation accuracy using average model is 0.98 \n",
      "After 4900 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 5000 training step(s), validation accuracy using average model is 0.982 \n",
      "After 5100 training step(s), validation accuracy using average model is 0.9818 \n",
      "After 5200 training step(s), validation accuracy using average model is 0.98 \n",
      "After 5300 training step(s), validation accuracy using average model is 0.981 \n",
      "After 5400 training step(s), validation accuracy using average model is 0.9822 \n",
      "After 5500 training step(s), validation accuracy using average model is 0.9816 \n",
      "After 5600 training step(s), validation accuracy using average model is 0.9814 \n",
      "After 5700 training step(s), validation accuracy using average model is 0.9812 \n",
      "After 5800 training step(s), validation accuracy using average model is 0.9798 \n",
      "After 5900 training step(s), validation accuracy using average model is 0.9798 \n"
     ]
    },
    {
     "data": {
      "image/png": "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\nzMzMSuwf0g5mxeTjNaIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c27fd0e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9792\n"
     ]
    }
   ],
   "source": [
    "# learning rate 0.5->0.3\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.setLearningRate(0.3)\n",
    "mnistDataTrain.train(x,y,l2,mnist,regularizer=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:28:31.796769Z",
     "start_time": "2018-02-07T01:28:09.432355Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9316 learning rate is 0.8\n",
      "After 200 training step(s), validation accuracy using average model is 0.9402 learning rate is 0.8\n",
      "After 300 training step(s), validation accuracy using average model is 0.9524 learning rate is 0.8\n",
      "After 400 training step(s), validation accuracy using average model is 0.9604 learning rate is 0.8\n",
      "After 500 training step(s), validation accuracy using average model is 0.961 learning rate is 0.8\n",
      "After 600 training step(s), validation accuracy using average model is 0.967 learning rate is 0.792\n",
      "After 700 training step(s), validation accuracy using average model is 0.9666 learning rate is 0.792\n",
      "After 800 training step(s), validation accuracy using average model is 0.9686 learning rate is 0.792\n",
      "After 900 training step(s), validation accuracy using average model is 0.9692 learning rate is 0.792\n",
      "After 1000 training step(s), validation accuracy using average model is 0.97 learning rate is 0.792\n",
      "After 1100 training step(s), validation accuracy using average model is 0.969 learning rate is 0.78408\n",
      "After 1200 training step(s), validation accuracy using average model is 0.9752 learning rate is 0.78408\n",
      "After 1300 training step(s), validation accuracy using average model is 0.9752 learning rate is 0.78408\n",
      "After 1400 training step(s), validation accuracy using average model is 0.973 learning rate is 0.78408\n",
      "After 1500 training step(s), validation accuracy using average model is 0.9754 learning rate is 0.78408\n",
      "After 1600 training step(s), validation accuracy using average model is 0.9738 learning rate is 0.78408\n",
      "After 1700 training step(s), validation accuracy using average model is 0.9752 learning rate is 0.776239\n",
      "After 1800 training step(s), validation accuracy using average model is 0.978 learning rate is 0.776239\n",
      "After 1900 training step(s), validation accuracy using average model is 0.977 learning rate is 0.776239\n",
      "After 2000 training step(s), validation accuracy using average model is 0.9766 learning rate is 0.776239\n",
      "After 2100 training step(s), validation accuracy using average model is 0.9788 learning rate is 0.776239\n",
      "After 2200 training step(s), validation accuracy using average model is 0.9798 learning rate is 0.768477\n",
      "After 2300 training step(s), validation accuracy using average model is 0.98 learning rate is 0.768477\n",
      "After 2400 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.768477\n",
      "After 2500 training step(s), validation accuracy using average model is 0.9792 learning rate is 0.768477\n",
      "After 2600 training step(s), validation accuracy using average model is 0.9776 learning rate is 0.768477\n",
      "After 2700 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.768477\n",
      "After 2800 training step(s), validation accuracy using average model is 0.982 learning rate is 0.760792\n",
      "After 2900 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.760792\n",
      "After 3000 training step(s), validation accuracy using average model is 0.981 learning rate is 0.760792\n",
      "After 3100 training step(s), validation accuracy using average model is 0.979 learning rate is 0.760792\n",
      "After 3200 training step(s), validation accuracy using average model is 0.981 learning rate is 0.760792\n",
      "After 3300 training step(s), validation accuracy using average model is 0.981 learning rate is 0.753184\n",
      "After 3400 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.753184\n",
      "After 3500 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.753184\n",
      "After 3600 training step(s), validation accuracy using average model is 0.979 learning rate is 0.753184\n",
      "After 3700 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.753184\n",
      "After 3800 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.753184\n",
      "After 3900 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.745652\n",
      "After 4000 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.745652\n",
      "After 4100 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.745652\n",
      "After 4200 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.745652\n",
      "After 4300 training step(s), validation accuracy using average model is 0.981 learning rate is 0.745652\n",
      "After 4400 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.738196\n",
      "After 4500 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.738196\n",
      "After 4600 training step(s), validation accuracy using average model is 0.9826 learning rate is 0.738196\n",
      "After 4700 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.738196\n",
      "After 4800 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.738196\n",
      "After 4900 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.738196\n",
      "After 5000 training step(s), validation accuracy using average model is 0.981 learning rate is 0.730814\n",
      "After 5100 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.730814\n",
      "After 5200 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.730814\n",
      "After 5300 training step(s), validation accuracy using average model is 0.981 learning rate is 0.730814\n",
      "After 5400 training step(s), validation accuracy using average model is 0.9804 learning rate is 0.730814\n",
      "After 5500 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.723506\n",
      "After 5600 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.723506\n",
      "After 5700 training step(s), validation accuracy using average model is 0.9834 learning rate is 0.723506\n",
      "After 5800 training step(s), validation accuracy using average model is 0.9838 learning rate is 0.723506\n",
      "After 5900 training step(s), validation accuracy using average model is 0.9836 learning rate is 0.723506\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAHjCAYAAAB8R1jMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X+YZndd3//naxMyEAENZJ3WJLub\n0bglbYHoGA1+JRH8EaxNRKwmrC0ol9t+S/yN/YauFRq7xSJV/IHWrUbFrqaYCk0tGtOYlfbqoJlI\nAibpwjrmxxIdFhEFFycN+/7+cd8T7szOzn1m95yZMzPPx3XdV+5zzuc+5z2fvTP73s/nfM47VYUk\nSZL6adt6ByBJkqRTM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnq\nMZM1SZKkHjt7vQNoy/nnn1+7du1a7zAkSZLGuueeez5aVdubtN00ydquXbuYnZ1d7zAkSZLGSvJw\n07ZOg0qSJPWYyZokSdr05g/OM7NrhkPbDjGza4b5g/On1WY9bJppUEmStHXNH5xnbt8cC48sMLFj\ngqn9U0zumXzy2OG9hzlx/AQACw8vcHjvYYBVtVkvjqxJknSG+jois1UsJloLDy9AfSbRWvxzmNs3\n92QStujE8RPM7Zt7crtJm/VisiZJ6qVxCdBaJkgrXWtcotBHfUou24hlXKK18MjCsp8b3d+kzXox\nWZO06fTpLyItr0kitlICtJYJUhujNn3Sp+SyaSzjvi/jEq2JHRPLHh/d36TNejFZk7SptPXLX91p\n8mc0LgFqM0Ea911oY9SmyXWatjlTfUoum8TS5PsyLtGa2j/FtnOfmvJsO3cbU/unntxu0ma9mKxJ\n2lTa+uXf1l+abfwFvZZ/yfclWRiXALWVIDX5LrQxatP0O9fGPzTOdBSq6XmatllJk1iafF/GJVqT\neybZfWA3EzsnIDCxc4LdB3Y/ZeFAkzbrxdWgklqx0kqstXSmv/wn90y2tiqsjRVoa7mKrem1xv05\nj2vT5M9oYsfEIGlZYjEBGne86c8z7rvQ5FpT+6eech04eUSmyXWatGnj+9JW37XxfWkSS5Pvy2gf\nnupak3smx/7/0KTNeuh0ZC3J1UkOJzmS5MZlju9McmeS9yc5lOTCkWNvTnJ/kgeT/GSSdBmrpFNr\n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\nAxxi8IiNySQ/m+RrWolUkiRJK2qyGvSvq+pgVX09g0UC9wInVSOQJElS+5o8Z+1JVfWxqvq5qnpJ\nVwFJkiTpM1aVrEmSJGltmaxJkiT1mMmaJElSj5msSZIk9ZjJmiRJUo+ZrEmSJPWYyZokSVKPmaxJ\nkiT1mMmaJElSj5msSZIk9VinyVqSq5McTnIkyUn1RJPsTHJnkvcnOZTkwiXHn53kw0l+uss42zJ/\ncJ6ZXTMc2naImV0zzB+cX++QJEnSBtdZspbkLOBtwMuAS4Hrk1y6pNlbgLdX1fOBm4A3LTn+w8Dv\ndRVjm+YPznN472EWHl6AgoWHFzi897AJmyRJOiNdjqxdDhypqrmqehy4Bbh2SZtLgTuH7+8aPZ7k\ni4FJ4Hc6jLE1c/vmOHH8xFP2nTh+grl9c+sUkSRJ2gy6TNYuAB4d2T463DfqPuAVw/cvB56V5LlJ\ntgH/HviBlS6QZG+S2SSzx44dayns07PwyMKq9kuSJDXRZbKWZfbVku3XAVcmeR9wJfBh4AngnwPv\nrqpHWUFVHaiq6aqa3r59exsxn7aJHROr2i9JktTE2R2e+yhw0cj2hcBjow2q6jHgGwGSPBN4RVX9\nZZIrgK9I8s+BZwLnJPlkVZ20SKEvpvZPcXjv4adMhW47dxtT+6fWMSpJkrTRdZms3Q1ckuRiBiNm\n1wGvHG2Q5HzgY1V1Ang9cDNAVe0ZafNqYLrPiRrA5J5JYHDv2sIjC0zsmGBq/9ST+yVJkk5HZ8la\nVT2R5AbgduAs4Oaquj/JTcBsVd0GXAW8KUkB7wFe21U8a2Fyz6TJmSRJalWqlt5GtjFNT0/X7Ozs\neochSZI0VpJ7qmq6SVsrGEiSJPWYyZokSVKPmaxJkiT1mMmaJElSj5msSZIk9ZjJmiRJUo+ZrEmS\nJPWYyZokSVKPmaxJkiT1mMmaJElSj5msNTR/cJ6ZXTMc2naImV0zzB+cX++QJEnSFtBZIffNZP7g\nPIf3HubE8RMALDy8wOG9hwEs3C5JkjrlyFoDc/vmnkzUFp04foK5fXPrFJEkSdoqOk3Wklyd5HCS\nI0luXOb4ziR3Jnl/kkNJLhzZf0+Se5Pcn+SfdRnnOAuPLKxqvyRJUls6S9aSnAW8DXgZcClwfZJL\nlzR7C/D2qno+cBPwpuH+PwVeVFUvBL4UuDHJ53UV6zgTOyZWtV+SJKktXY6sXQ4cqaq5qnocuAW4\ndkmbS4E7h+/vWjxeVY9X1eKw1UTHcY41tX+Kbec+NYRt525jav/UOkUkSZK2ii6ToAuAR0e2jw73\njboPeMXw/cuBZyV5LkCSi5K8f3iOf1dVj3UY64om90yy+8BuJnZOQGBi5wS7D+x2cYEkSepcl6tB\ns8y+WrL9OuCnk7waeA/wYeAJgKp6FHj+cPrzXUluraqnPC8jyV5gL8COHTvajX6JyT2TJmeSJGnN\ndTmydhS4aGT7QuApo2NV9VhVfWNVXQbsG+77y6VtgPuBr1h6gao6UFXTVTW9ffv2tuOXJElad6la\nOtjV0omTs4EPAi9lMGJ2N/DKqrp/pM35wMeq6kSS/cCnq+qHhqtC/7yqPpXkPOD3gVdU1QdWuN4x\n4OFOfpinOh/46BpcZyuyb7tl/3bHvu2W/dsd+7ZbK/XvzqpqNNLU2TRoVT2R5AbgduAs4Oaquj/J\nTcBsVd0GXAW8KUkxmAZ97fDjzwP+/XB/gLeslKgNr7cmQ2tJZqtqei2utdXYt92yf7tj33bL/u2O\nfduttvq30woGVfVu4N1L9v3QyPtbgVuX+dwdwPO7jE2SJGkjsIKBJElSj5msrd6B9Q5gE7Nvu2X/\ndse+7Zb92x37tlut9G9nCwwkSZJ05hxZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1\nSZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4z\nWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ6rGz1zuAtpx//vm1a9eu9Q5DkiRprHvuueej\nVbW9SdtNk6zt2rWL2dnZ9Q5DkiRprCQPN23rNKgkSVKPmaw1dHB+nl0zM2w7dIhdMzMcnJ9f75Ak\nSdIWsGmmQbt0cH6evYcPc/zECQAeXlhg7+HDAOyZnFzP0CRJ0ibnyFoD++bmnkzUFh0/cYJ9c3Pr\nFJEkSdoqTNYaeGRhYVX7JUmS2mKy1sCOiYlV7ZckSWqLyVoD+6emOHfbU7vq3G3b2D81tU4RSZKk\nrcJkrYE9k5Mc2L2bnRMTBNg5McGB3btdXCBJkjrnatCG9kxOmpxJkqQ158iaJElSj3WarCW5Osnh\nJEeS3LjM8e9L8kCS9ye5M8nOkWOfTnLv8HVbl3FKkiT1VWfToEnOAt4GfDVwFLg7yW1V9cBIs/cB\n01V1PMn/C7wZ+JbhsU9V1Qu7ik+SJGkj6HJk7XLgSFXNVdXjwC3AtaMNququqjo+3HwvcGGH8UiS\nJG04XSZrFwCPjmwfHe47ldcAvzWy/fQks0nem+QbughQkiSp77pcDZpl9tWyDZNvBaaBK0d276iq\nx5JMAb+b5ANV9cdLPrcX2AuwY8eOdqKWJEnqkS5H1o4CF41sXwg8trRRkq8C9gHXVNWT9Zuq6rHh\nf+eAQ8BlSz9bVQeqarqqprdv395u9JIkST3QZbJ2N3BJkouTnANcBzxlVWeSy4CfY5CofWRk/3lJ\nJobvzwe+HBhdmCBJkrQldDYNWlVPJLkBuB04C7i5qu5PchMwW1W3AT8KPBP49SQAj1TVNcDzgJ9L\ncoJBQvkjS1aRSpIkbQmpWvY2sg1nenq6Zmdn1zsMSZKksZLcU1XTTdpawUCSJKnHTNYkSZJ6zGRN\nkiSpx0zWJEmSesxkTZIkqcdM1iRJknrMZE2SJKnHTNYkSZJ6zGRNkiSpx0zWJEmSesxkTZIkqcdM\n1iRJknrMZE2SJKnHTNZadHB+nl0zM2w7dIhdMzMcnJ9f75AkSdIGd/Z6B7BZHJyfZ+/hwxw/cQKA\nhxcW2Hv4MAB7JifXMzRJkrSBObLWkn1zc08maouOnzjBvrm5dYpIkiRtBiZrLXlkYWFV+yVJkpow\nWWvJjomJVe2XJElqwmStJfunpjh321O789xt29g/NbVOEUmSpM3AZK0leyYnObB7NzsnJgiwc2KC\nA7t3u7hAkiSdEVeDtmjP5KTJmSRJapUja5IkST3WabKW5Ookh5McSXLjMse/L8kDSd6f5M4kO0eO\nvSrJh4avV3UZpyRJUl91lqwlOQt4G/Ay4FLg+iSXLmn2PmC6qp4P3Aq8efjZ5wBvAL4UuBx4Q5Lz\nuopVkiSpr7ocWbscOFJVc1X1OHALcO1og6q6q6qODzffC1w4fP+1wB1V9bGq+gvgDuDqDmOVJEnq\npS6TtQuAR0e2jw73ncprgN9azWeT7E0ym2T22LFjZxiuJElS/3SZrGWZfbVsw+RbgWngR1fz2ao6\nUFXTVTW9ffv20w5UkiSpr7pM1o4CF41sXwg8trRRkq8C9gHXVNXCaj4rSZK02XWZrN0NXJLk4iTn\nANcBt402SHIZ8HMMErWPjBy6HfiaJOcNFxZ8zXCfJEnSltLZQ3Gr6okkNzBIss4Cbq6q+5PcBMxW\n1W0Mpj2fCfx6EoBHquqaqvpYkh9mkPAB3FRVH+sqVkmSpL5K1bK3kW0409PTNTs7u95hSJIkjZXk\nnqqabtLWCgZr6OD8PLtmZth26BC7ZmY4OD+/3iFJkqSeszboGjk4P8/ew4c5fuIEAA8vLLD38GEA\n64lKkqRTcmRtjeybm3syUVt0/MQJ9s3NrVNEkiRpIzBZWyOPLCysar8kSRI0TNaS/EqTfTq1HRMT\nq9ovSZIEzUfW/u7oxrBI+xe3H87mtX9qinO3PbW7z922jf1TU+sUkSRJ2ghWTNaSvD7JJ4DnJ/mr\n4esTwEeA/7omEW4SeyYnObB7NzsnJgiwc2KCA7t3u7hAkiStqNFz1pK8qapevwbxnDafsyZJkjaK\nLp6z9ptJPmt48m9N8mNJdp52hJIkSWqkabL2s8DxJC8A/gXwMPD2zqKSJEkS0DxZe6IG86XXAj9R\nVT8BPKu7sCRJkgTNKxh8IsnrgX8MfMVwNejTugtLkiRJ0Hxk7VuABeDbq+rPgAuAH+0sKkmSJAEN\nk7VhgnYQ+OwkXw/8TVV5z5okSVLHmlYw+GbgD4B/BHwz8PtJvqnLwCRJktT8nrV9wJdU1UcAkmwH\n/gdwa1eBSZIkqfk9a9sWE7WhP1/FZ7UKB+fn2TUzw7ZDh9g1M8PB+fn1DkmSJK2jpiNrv53kduDX\nhtvfAry7m5C2roPz8+w9fJjjJ04A8PDCAnsPHwawLJUkSVvUuNqgX5Dky6vqB4CfA54PvACYAQ6s\nQXxbyr65uScTtUXHT5xg39zcOkUkSZLW27ipzLcCnwCoqt+oqu+rqu9lMKr21q6D22oeWVhY1X5J\nkrT5jUvWdlXV+5furKpZYFcnEW1hOyYmVrVfkiRtfuOStaevcOwZ406e5Ookh5McSXLjMsdfnOQP\nkzyx9FEgST6d5N7h67Zx19oM9k9Nce62p/6RnLttG/unptYpIkmStN7GJWt3J/mOpTuTvAa4Z6UP\nDktSvQ14GXApcH2SS5c0ewR4NfCry5ziU1X1wuHrmjFxbgp7Jic5sHs3OycmCLBzYoIDu3eftLjA\nFaOSJG0d41aDfg/wziR7+ExyNg2cA7x8zGcvB45U1RxAklsYFIJ/YLFBVT00PHZiuRNsRXsmJ1dc\n+emKUUmStpYVR9aqar6qXgT8a+Ch4etfV9UVwxJUK7kAeHRk++hwX1NPTzKb5L1JvmG5Bkn2DtvM\nHjt2bBWn3rhcMSpJ0tbS6DlrVXUXcNcqz53lTrWKz++oqseSTAG/m+QDVfXHS+I6wPARItPT06s5\n94blilFJkraWLqsQHAUuGtm+EHis6Yer6rHhf+eAQ8BlbQa3UbliVJKkraXLZO1u4JIkFyc5B7gO\naLSqM8l5SSaG788HvpyRe92TsWHnAAAgAElEQVS2MleMSpK0tXSWrFXVE8ANwO3Ag8A7qur+JDcl\nuQYgyZckOQr8I+Dnktw//PjzgNkk9zGYfv2RqjJZo/mKUUmStDmkanPc6jU9PV2zs7PrHYYkSdJY\nSe6pqukmbbucBpUkSdIZMlmTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWdukLPYuSdLmYLK2CS0W\ne394YYHiM8XeRxM2kzlJkjYGk7VNaFyx9ybJnCRJ6geTtU1oXLH3ccmcJEnqD5O1TWhcsfdxydwi\np0olSVp/Jmub0Lhi7+OSOXCqVJKkvjBZ24TGFXsfl8zB2k6VOoInSdKpnb3eAagbeyYnn0zOljsG\ng4TskYUFdkxMsH9q6intm06VnqnFEbzFxHBxBG80TkmStjKTtS1qpWQOBlOiDy+TmC2dQj04P79i\n0jfOSiN4JmuSJDkNqlNoMlXa9L62laY512oET5KkjcpkTcsad98bNLuvbVxC12SxgyRJW5nToDql\ncVOlTUbFxk1z7p+aeso9a3DyCJ4kSVuZI2s6bU1GxcYldE1G8CRJ2socWdNpazIq1mShwrgRPEmS\ntjJH1nTamoyKNVmoIEmSTs2RNZ2RcaNiTZ7pJkmSTs1kTZ1bq2nOM33mW9+uI0kSdDwNmuTqJIeT\nHEly4zLHX5zkD5M8keSblhx7VZIPDV+v6jJO9d+4klRrVcvUmqmSpLXWWbKW5CzgbcDLgEuB65Nc\nuqTZI8CrgV9d8tnnAG8AvhS4HHhDkvO6ilX91iRBalrLtEnSt9LxtayZKkkSdDuydjlwpKrmqupx\n4Bbg2tEGVfVQVb0fOLHks18L3FFVH6uqvwDuAK7uMFb1WJMEqckz38YlfU2SQisuSJLWWpfJ2gXA\noyPbR4f7Wvtskr1JZpPMHjt27LQDVb81SZCaPPNtXNLXJCm04oIkaa11maxlmX3V5mer6kBVTVfV\n9Pbt21cVnDaOJglSk0eEjEv6miSFbT2KZNx0qyRJi7pM1o4CF41sXwg8tgaf1SbTJEFq8sy3cUlf\nk6SwacWFlZKxposUmiR0Jn2StPmlqulg1ypPnJwNfBB4KfBh4G7glVV1/zJtfwn4zaq6dbj9HOAe\n4IuGTf4Q+OKq+tiprjc9PV2zs7Ot/gzqjzYel7GYJC2tuLCYbI073tZ1ds3MLFvVYefEBA9dcUWj\nczRts9huozxqZCPFKklnIsk9VTXdqG1XydowkK8D3gqcBdxcVfuT3ATMVtVtSb4EeCdwHvA3wJ9V\n1d8dfvbbgX85PNX+qvrFla5lsqYmxiUDbSQL45KxbYcOLXs/QIATV13V6BxN2zRN+vqQILWVLEvS\nRtCbZG0tmaypL8YlY02SrCYJXRtJX58SpCb9IkmbxWqSNWuDSi0bd+9bk3vwmtw/16TNuEUTbT2f\nrg1NH4vifXqSthqTNall45KxJosUmiR0bSR9bTyfbrTdmSRRTZLPvlWQ6NMiEJNYafMyWZNa1iQZ\n2zM5yUNXXMGJq67ioSuuOGnKsek5zjTpa+P5dNBOQtck+VzLChJtlDjbjGXQTArXn38GW4/3rEmb\n3EoLCJrcs9bWgog2Fjs0iaXJedrol7YWgTSNdyVrdZ2NuAK5T7G0YS3vM21rFf5m6v82reaetbO7\nDkbS+tozOXnKX46L+1f6ZbpjYmLZRGA198YtXuNUo2KL11sp1qaxLP3LbHGUafTnHdemSaxNfubV\nTDOPi3elP6O2rjPuWk36pel12tBkdfeZ/sxrbVwsTf4M2orjTPtuLb8L42JZy3N0wWlQaYsbNyXb\n1oKINuqqtjVVOq5NWyXO2phmbjLFuVbT2WealI860/v9mvRLm1P4a6Gt+sRtTJO20Xdr9V1oEksT\nffouLGWyJmlFbS2IaKOuapNY2hjxaqvEWRtl0Jr8hdfGdZpcq62kvI37/Zr0y1oml20kHG3UJ25r\nQVAbfbdW34UmsTT5mdfyntjVMlmTNFYbCyLaqqs6LpY2RrzaKnHWRhm0Jn/htXGdJtdqKynv0+hn\nGwlFWwlHG/WJ2xpNbKPv1uq70CSWtvp/vZisSWpFGwldG9oY8Woa67ifuUmbNlbstnGdJtdqKynv\n0+hnGwlFWwlHG/WJ2xpNbKPv1uq70CSWtvp/vZisSVozTZKbNq7RxojXWsTaJJY2RyTbSLTaSMr7\nNPrZRkLRVsLR9M96pT+DtkYT2+i7tfouNImlzf5fDz66Q5J6bi1XqK3FtZo+xmWt6tqOO8+4R6P0\n6TEubT12ZjXX6zreNh4Zs1b9vxrWBpUk9dqZPgtvrWNdKVloM+FoK97VPNKky1jaiLdpm3HX6NPP\nDCZrkiS1qkkCtFGSz77Fslb69jObrEmSJPXYapI1FxhIkiT12KYZWUtyDHh4DS51PvDRNbjOVmTf\ndsv+7Y592y37tzv2bbdW6t+dVbW9yUk2TbK2VpLMNh221OrYt92yf7tj33bL/u2OfduttvrXaVBJ\nkqQeM1mTJEnqMZO11Tuw3gFsYvZtt+zf7ti33bJ/u2PfdquV/vWeNUmSpB5zZE2SJKnHTNYkSZJ6\nzGRNkiSpx0zWJEmSesxkTZIkqcdM1iRJknrMZE2SJKnHTNYkSZJ6zGRNkiSpx0zWJEmSesxkTZIk\nqcdM1iRJknrMZE2SJKnHTNYkSZJ6zGRNkiSpx0zWJEmSesxkTZIkqcdM1iRJknrMZE2SJKnHTNYk\nSZJ67Oz1DqAt559/fu3atWu9w5AkSRrrnnvu+WhVbW/SdtMka7t27WJ2dna9w5AkSRorycNN23Y6\nDZrk6iSHkxxJcuMyx3ckuSvJ+5K8P8nXjRx7/fBzh5N8bZdxSpIk9VVnyVqSs4C3AS8DLgWuT3Lp\nkmY/CLyjqi4DrgN+ZvjZS4fbfxe4GviZ4fnWzfz8QWZmdnHo0DZmZnYxP39w1W3aOEfTNpIkaXPo\nchr0cuBIVc0BJLkFuBZ4YKRNAc8evv9s4LHh+2uBW6pqAfiTJEeG55vpMN5Tmp8/yOHDezlx4jgA\nCwsPc/jwXgAmJ/c0atPGOZq2kSRJm0eX06AXAI+ObB8d7hv1RuBbkxwF3g185yo+u2bm5vY9mRwt\nOnHiOHNz+xq3aeMcTdtIkqTNo8tkLcvsqyXb1wO/VFUXAl8H/EqSbQ0/S5K9SWaTzB47duyMAz6V\nhYVHxu4f16aNczRtI0mSNo8uk7WjwEUj2xfymWnORa8B3gFQVTPA04HzG36WqjpQVdNVNb19e6PV\nr6dlYmLH2P3j2rRxjqZtJEnS5tFlsnY3cEmSi5Ocw2DBwG1L2jwCvBQgyfMYJGvHhu2uSzKR5GLg\nEuAPOox1RVNT+9m27dyn7Nu27VympvY3btPGOZq2kSRJm0dnyVpVPQHcANwOPMhg1ef9SW5Kcs2w\n2fcD35HkPuDXgFfXwP0MRtweAH4beG1VfbqrWMeZnNzD7t0HmJjYCYSJiZ3s3n3gKTf0j2vTxjma\ntpEkSZtHqk66FWxDmp6eLh+KK0mSNoIk91TVdJO21gaVJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4z\nWduk+lSn1FqmkiSdvi5rg2qd9KlOqbVMJUk6M46sbUJ9qlNqLVNJks6Mydom1Kc6pdYylSTpzJis\nbUJ9qlNqLVNJks6Mydom1Kc6pdYylSTpzJisbUJ9qlNqLVNJks6MtUElSZLWmLVBJUmSNgmTNUmS\npB4zWZMkSeoxkzVJkqQeM1nTuutTnVJrnUqS+sbaoFpXfapTaq1TSVIfObKmddWnOqXWOpUk9ZHJ\nmtZVn+qUWutUktRHJmtaV32qU2qtU0lSH41N1pKcm+RfJfmPw+1Lknx996FpK+hTnVJrnUqS+qjJ\nyNovAgvAFcPto8C/aXLyJFcnOZzkSJIblzn+40nuHb4+mOTjI8fenOT+JA8m+ckkaXJNbSx9qlNq\nrVNJUh+NrQ2aZLaqppO8r6ouG+67r6peMOZzZwEfBL6aQYJ3N3B9VT1wivbfCVxWVd+e5EXAjwIv\nHh7+X8Drq+rQqa5nbVBJkrRRtF0b9PEkzwBqePLPZzDSNs7lwJGqmquqx4FbgGtXaH898GvD9wU8\nHTgHmACeBsw3uKYkSdKm0iRZeyPw28BFSQ4CdwL/X4PPXQA8OrJ9dLjvJEl2AhcDvwtQVTPAXcCf\nDl+3V9WDy3xub5LZJLPHjh1rEJIkSdLGMvahuFX1O0nuAb4MCPDdVfXRBude7h6zU825XgfcWlWf\nBkjyBcDzgAuHx+9I8uKqes+S2A4AB2AwDdogJkmSpA2lyWrQO6vqz6vqv1fVb1bVR5Pc2eDcR4GL\nRrYvBB47Rdvr+MwUKMDLgfdW1Ser6pPAbzFIFiVJkraUUyZrSZ6e5DnA+UnOS/Kc4WsX8HkNzn03\ncEmSi5OcwyAhu22Z6+wGzgNmRnY/AlyZ5OwkTwOuBE6aBpX6aq1qkFrLVJI2v5WmQf8p8D0MErN7\n+My05l8Bbxt34qp6IskNwO3AWcDNVXV/kpuA2apaTNyuB26ppy5LvRV4CfABBlOnv11V/635jyWt\nn7WqQWotU0naGpo8uuM7q+qn1iie0+ajO9QXMzO7WFh4+KT9ExM7ueKKh8Yeb3KONttIktbeah7d\n0WSBwU8l+XvApQwep7G4/+2nH6K0ea1VDVJrmUrS1tBkgcEbgJ8avr4SeDNwTcdxSRvWWtUgtZap\nJG0NTZ6z9k3AS4E/q6pvA17A4EG1kpaxVjVIrWUqSVtDk2TtU1V1AngiybOBjwBT3YYlbVxrVYPU\nWqaStDU0WWDwM8C/ZPDoje8HPgncOxxl6w0XGEiSpI2itQUGSQK8qao+DvyHJL8NPLuq3t9CnJIk\nSRpjxWnQ4bPP3jWy/ZCJmiRJ0tppcs/ae5N8SeeRSJIk6SRjn7PG4HEd/zTJw8BfM6hkUFX1/E4j\nkyRJUqNk7WWdRyFp3czPH2Rubh8LC48wMbGDqan9J60WXas2bV1HkjaTJhUMTq5VI2lT6FOdUmud\nStLymtyzJmmTmpvb92Tis+jEiePMze1b8zZtXUeSNhuTNWkL61OdUmudStLyTNakLaxPdUqtdSpJ\ny2tSyP0TSf5qyevRJO9MYtkpaQPrU51Sa51K0vKarAb9MeAx4FcZPLbjOuBvAYeBm4GrugpOUrcW\nb8pfaXXlWrVp6zqStNk0qQ36+1X1pUv2vbeqvizJfVX1gk4jbMjaoJIkaaNYTW3QJvesnUjyzUm2\nDV/fPHJs5UxPkiRJZ6RJsrYH+MfAR4D54ftvTfIM4IYOY5MkSdrymjwUdw74h6c4/L/aDUeSJEmj\nxiZrSbYD3wHsGm1fVd/eXViSdPr6VPrK8liSzlST1aD/FfifwP8APr2akye5GvgJ4Czg56vqR5Yc\n/3EGheIBzgU+t6o+Z3hsB/DzwEUM7o37uqp6aDXXl7T19Kn0leWxJLWhyWrQe6vqhas+cXIW8EHg\nq4GjwN3A9VX1wCnafydw2eKIXZJDwP6quiPJM4ETVXV8uc+Cq0ElDczM7GJh4eSSxhMTO7niioca\ntWnjHE3bSNqa2l4N+ptJvu404rgcOFJVc1X1OHALcO0K7a8Hfg0gyaXA2VV1B0BVfXKlRE2SFvWp\n9JXlsSS1oUmy9t0MErZPDasXfCLJXzX43AXAoyPbR4f7TpJkJ3Ax8LvDXV8IfDzJbyR5X5IfHY7U\nSdKK+lT6yvJYktowNlmrqmdV1baqekZVPXu4/ewG585ypztF2+uAW6tq8Z64s4GvAF4HfAkwBbz6\npAske5PMJpk9duxYg5AkbXZ9Kn1leSxJbThlspbk7wz/+0XLvRqc+yiDxQGLLmRQtmo51zGcAh35\n7PuGU6hPAO8CTrpmVR2oqumqmt6+fXuDkCRtdpOTe9i9+wATEzuBMDGxk927D5xUtmqlNm2co2kb\nSRrnlAsMkhyoqr1J7lrmcFXVS1Y8cXI2gwUGLwU+zGCBwSur6v4l7XYDtwMX1zCY4ZTnHwJfVVXH\nkvwiMFtVbzvV9VxgIEmSNorVLDA45aM7qmrv8L9feao2K6mqJ5LcwCAROwu4uaruT3ITg8TrtmHT\n64FbaiRrrKpPJ3kdcGeSAPcA//F04pAkSdrIxj66AyDJizj5obhv7y6s1XNkTZIkbRStjKyNnOxX\ngM8H7uUzD8UtoFfJmiRJ0mbUpILBNHBpNRmCkyRJUquaPGftj4C/1XUgkrRVzc8fZGZmF4cObWNm\nZhfz8wdXdXwt2zQ5h6R2NRlZOx94IMkfAAuLO6vqms6ikqQtok91StuIRVL7mtQGvXK5/VX1e51E\ndJpcYCBpI+pTndI2YpHUTGsLDIbPO/tXVfVVrUQmSXqKPtUpbSMWSe1b8Z61Yfmn40k+e43ikaQt\npU91StuIRVL7miww+BvgA0l+IclPLr66DkyStoI+1SltIxZJ7WuywOC/D1+SpJYt3pg/N7ePhYVH\nmJjYwdTU/qfUKV3p+Fq2aXIOSe1rVMFgI3CBgSRJ2ijarmBwCfAm4FLg6Yv7q2rqtCOUJElSI03u\nWftF4GeBJ4CvZFBm6le6DEqSJEkDTZK1Z1TVnQymTB+uqjcCL+k2LEmSJEHD1aBJtgEfSnJDkpcD\nn9txXJKkDapPpa8sj6XNoMlq0O8BzgW+C/hhBlOhr+oyKEnSxtSn0leWx9Jm0Xg1aJLPqqq/7jie\n0+ZqUElaf30qfWV5LPXZalaDjp0GTXJFkgeAB4fbL0jyM2cYoyRpE+pT6SvLY2mzaHLP2luBrwX+\nHKCq7gNe3GVQkqSNqU+lryyPpc2iSbJGVT26ZNenO4hFkrTB9an0leWxtFk0SdYeTfIioJKck+R1\nDKdEJUkaNTm5h927DzAxsRMIExM72b37wEllrc60TVvXkTaCsQsMkpwP/ATwVUCA3wG+q6o+1n14\nzbnAQJIkbRStlpuqqo8CT/lnSJLvYXAvmyRJkjrU6J61ZXxfk0ZJrk5yOMmRJDcuc/zHk9w7fH0w\nyceXHH92kg8n+enTjFOSJGlDa/JQ3OVkbIPkLOBtwFcDR4G7k9xWVQ8stqmq7x1p/53AZUtO88PA\n751mjJIkSRve6Y6sNXmS7uXAkaqaq6rHgVuAa1dofz3wa4sbSb4YmGRwj5wkSdKWdMpkLcknkvzV\nMq9PAJ/X4NwXAKOP/Dg63LfctXYCFwO/O9zeBvx74AdWukCSvUlmk8weO3asQUiSJD1Vn+qUWu9U\nyznlNGhVPesMz73cVOmpRuSuA26tqsXnt/1z4N1V9Why6hnXqjoAHIDBatAziFWStAX1qU6p9U51\nKqc7DdrEUeCike0LgcdO0fY6RqZAgSuAG5I8BLwF+CdJfqSLICVJW9fc3L4nE59FJ04cZ25uX+M2\nbZyjzTbafE53gUETdwOXJLkY+DCDhOyVSxsl2Q2cB8ws7quqPSPHXw1MV9VJq0klSToTfapTar1T\nnUpnI2tV9QRwA3A7g4oH76iq+5PclOSakabXA7fUuKfzSpLUsj7VKbXeqU6ly2lQqurdVfWFVfX5\nVbV/uO+Hquq2kTZvXGnUrKp+qapu6DJOSdLW1Kc6pdY71al0mqxJktRnfapTar1TncrY2qAbhbVB\nJUnSRrGa2qCOrEmSJPWYyZokSVKPmaxJkiT1mMmaJEmbSJ9KX1kaqx1dPhRXkiStoT6VvrI0Vnsc\nWZMkaZPoU+krS2O1x2RNkqRNok+lryyN1R6TNUmSNok+lb6yNFZ7TNYkSdok+lT6ytJY7TFZkyRp\nk+hT6StLY7XHclOSJElrzHJTkiRJm4TJmiRJUo+ZrEmSJPWYyZokSVo3fSp91dfyWJabkiRJ66JP\npa/6XB7LkTVJkrQu+lT6qs/lsUzWJEnSuuhT6as+l8cyWZMkSeuiT6Wv+lweq9NkLcnVSQ4nOZLk\nxmWO/3iSe4evDyb5+HD/C5PMJLk/yfuTfEuXcUqSpLXXp9JXfS6P1dkCgyRnAW8Dvho4Ctyd5Laq\nemCxTVV970j77wQuG24eB/5JVX0oyecB9yS5vao+3lW8kiRpbS3euD83t4+FhUeYmNjB1NT+k8pa\nnWmbtq6zXjorN5XkCuCNVfW1w+3XA1TVm07R/n8Db6iqO5Y5dh/wTVX1oVNdz3JTkiRpo+hLuakL\ngEdHto8O950kyU7gYuB3lzl2OXAO8MfLHNubZDbJ7LFjx1oJWpIkqU+6fM5altl3qmG864Bbq+rT\nTzlB8reBXwFeVVUnTjpZ1QHgwLDtsSQPn1nIjZwPfHQNrrMV2bfdsn+7Y992y/7tjn3brZX6d2fT\nk3SZrB0FLhrZvhB47BRtrwNeO7ojybOB/w78YFW9d9zFqmr7aca5Kklmmw5banXs227Zv92xb7tl\n/3bHvu1WW/3b5TTo3cAlSS5Ocg6DhOy2pY2S7AbOA2ZG9p0DvBN4e1X9eocxSpIk9VpnyVpVPQHc\nANwOPAi8o6ruT3JTkmtGml4P3FJPXenwzcCLgVePPNrjhV3FKkmS1Fed1gatqncD716y74eWbL9x\nmc/9J+A/dRnbGTiw3gFsYvZtt+zf7ti33bJ/u2PfdquV/u3s0R2SJEk6c5abkiRJ6jGTNUmSpB4z\nWWtoXJ1TrU6Sm5N8JMkfjex7TpI7knxo+N/z1jPGjSrJRUnuSvLgsL7udw/3278tSPL0JH+Q5L5h\n//7r4f6Lk/z+sH//83BVu05DkrOSvC/Jbw637duWJHkoyQeGC/dmh/v83dCCJJ+T5NYk/2f4+/eK\ntvrWZK2BkTqnLwMuBa5Pcun6RrXh/RJw9ZJ9NwJ3VtUlwJ3Dba3eE8D3V9XzgC8DXjv8vtq/7VgA\nXlJVLwBeCFyd5MuAfwf8+LB//wJ4zTrGuNF9N4OnCCyyb9v1lVX1wpHnf/m7oR0/Afx2Vf0d4AUM\nvsOt9K3JWjOXA0eqaq6qHgduAa5d55g2tKp6D/CxJbuvBX55+P6XgW9Y06A2iar606r6w+H7TzD4\nhXEB9m8rauCTw82nDV8FvAS4dbjf/j1NSS4E/gHw88PtYN92zd8NZ2j4IP8XA78AUFWPV9XHaalv\nTdaaaVznVGdksqr+FAYJB/C56xzPhpdkF3AZ8PvYv60ZTtPdC3wEuINB7eKPD58vCf6OOBNvBf4F\nsFhi8LnYt20q4HeS3JNk73CfvxvO3BRwDPjF4RT+zyf5LFrqW5O1ZlZT51TqhSTPBP4L8D1V9Vfr\nHc9mUlWfrqoXMiijdznwvOWarW1UG1+Srwc+UlX3jO5epql9e/q+vKq+iMFtPa9N8uL1DmiTOBv4\nIuBnq+oy4K9pcTrZZK2Z1dQ51embT/K3AYb//cg6x7NhJXkag0TtYFX9xnC3/duy4TTHIQb3Bn5O\nksUHjfs74vR8OXBNkocY3G7yEgYjbfZtS6rqseF/P8KgrOPl+LuhDUeBo1X1+8PtWxkkb630rcla\nM43qnOqM3Qa8avj+VcB/XcdYNqzhPT6/ADxYVT82csj+bUGS7Uk+Z/j+GcBXMbgv8C7gm4bN7N/T\nUFWvr6oLq2oXg9+zv1tVe7BvW5Hks5I8a/E98DXAH+HvhjNWVX8GPDqsdw7wUuABWupbKxg0lOTr\nGPwL7yzg5qrav84hbWhJfg24CjgfmAfeALwLeAewA3gE+EdVtXQRgsZI8v8A/xP4AJ+57+dfMrhv\nzf49Q0mez+BG4bMY/IP3HVV1U5IpBqNBzwHeB3xrVS2sX6QbW5KrgNdV1dfbt+0Y9uM7h5tnA79a\nVfuTPBd/N5yxYQ3znwfOAeaAb2P4O4Iz7FuTNUmSpB5zGlSSJKnHTNYkSZJ6zGRNkiSpx0zWJEmS\nesxkTZIkqcdM1iRtCEk+neTeJPcnuS/J9yXZNjw2neQnT/O8DyU5v4X4vj3JB5K8P8kfJbl2uP/V\nST7vTM8vaes6e3wTSeqFTw1LPJHkc4FfBT4beENVzQKz6xXYsPj4PuCLquovh6W+tg8Pv5rBg0d9\n6r6k0+LImqQNZ1gqZy9wQwauSvKbAEmuHI7A3TssqPys4fH3JHlnkgeS/IfFUblRSd41LHB9/2KR\n6ySvSfLjI22+I8mPLfno5wKfAD45jO+TVfUnSb4JmAYODuN5RpIvTvJ7w+vcPlKK5lCStyb538OR\nucs76DpJG5DJmqQNqarmGPwO+9wlh14HvHY4CvcVwKeG+y8Hvh/4+8DnA9+4zGm/vaq+mEGC9V3D\nJ7vfwqBe5dOGbb4N+MUln7uPQSWO/7+9eweNKojCOP7/igVFTNKkESxExIgWwUJcSSOkEIldIKCd\nVbAIFpYWKSOIEbVIISpYBESwURSCEoKPuJUaIppCsdViCeKjSDgWMwub67oIKt5Nvl91d+bOY2+x\nzJ4Z7nkv6bqkY3mOt0kRvxN5PivAZWA4j3MNaM6GsiUiDgGncp2ZmRdrZtbR1KLsCXBB0hjQExEr\nubwWEe8iYhWYBgZatB2T9BKYB7YDuyLiC/AIGJLUB1QiYqG5Ue7zCCl/5RIwKWm8Rf+7gX3AjKQX\nwFlSYvKG6dzfHNDVyEFqZhubz6yZWUfKeQ5XgY/AnkZ5RExIugccBeYlDTaqCl2s+ZxzUQ4C1Yj4\nKmkW2JSrr5Lyq77h56haY9wAakBN0ky+b7w4bWAxIqq/+Fpt52hmG5Mja2bWcST1AlPAlSgkOJa0\nMyIWIuIcaQuyL1cdkLQjn1UbAR4Xuu0G6nmh1gccbFRExHNSpO04OfpVGHObpP1NRf3Ah3z9Gdia\nr98CvZKquV1F0t6mdiO5fABYjojl33gcZrbOObJmZp1ic946rJDOft0Eigf9AU5LOkyKur0G7gNV\n4BkwQTqzNgfcKbR7AIxKekVaVM0X6m8B/RFRbzFmBTifX9HxHfgEjOa6G8CUpG95HsPAJUndpN/g\ni8Bivrcu6SnQBZxs+zTMbMNQ4U+pmdm6k7c4z0TE0B/0cReYjIiHf21ia/ufJc3xv72CxMzKydug\nZmZtSOqRtER6z9s/WbNnGFgAAAA5SURBVKiZmbXjyJqZmZlZiTmyZmZmZlZiXqyZmZmZlZgXa2Zm\nZmYl5sWamZmZWYl5sWZmZmZWYj8AxHY8ZEyeVxYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c264c8e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9818\n"
     ]
    }
   ],
   "source": [
    "# 每一轮逐渐减学习率\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist,decay_learning_rate=True,regularizer=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "学习率从0.5 -> 0.3 cost 和 accuracy 没有什么变化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 试试改变batch_size "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:29:26.379604Z",
     "start_time": "2018-02-07T01:28:31.798881Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9274 learning rate is 0.8\n",
      "After 200 training step(s), validation accuracy using average model is 0.9422 learning rate is 0.792\n",
      "After 300 training step(s), validation accuracy using average model is 0.9546 learning rate is 0.792\n",
      "After 400 training step(s), validation accuracy using average model is 0.9588 learning rate is 0.78408\n",
      "After 500 training step(s), validation accuracy using average model is 0.9642 learning rate is 0.78408\n",
      "After 600 training step(s), validation accuracy using average model is 0.9658 learning rate is 0.776239\n",
      "After 700 training step(s), validation accuracy using average model is 0.9666 learning rate is 0.776239\n",
      "After 800 training step(s), validation accuracy using average model is 0.9702 learning rate is 0.768477\n",
      "After 900 training step(s), validation accuracy using average model is 0.971 learning rate is 0.768477\n",
      "After 1000 training step(s), validation accuracy using average model is 0.9736 learning rate is 0.760792\n",
      "After 1100 training step(s), validation accuracy using average model is 0.9716 learning rate is 0.753184\n",
      "After 1200 training step(s), validation accuracy using average model is 0.9748 learning rate is 0.753184\n",
      "After 1300 training step(s), validation accuracy using average model is 0.9752 learning rate is 0.745652\n",
      "After 1400 training step(s), validation accuracy using average model is 0.9776 learning rate is 0.745652\n",
      "After 1500 training step(s), validation accuracy using average model is 0.9768 learning rate is 0.738196\n",
      "After 1600 training step(s), validation accuracy using average model is 0.9776 learning rate is 0.738196\n",
      "After 1700 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.730814\n",
      "After 1800 training step(s), validation accuracy using average model is 0.979 learning rate is 0.730814\n",
      "After 1900 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.723506\n",
      "After 2000 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.723506\n",
      "After 2100 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.716271\n",
      "After 2200 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.709108\n",
      "After 2300 training step(s), validation accuracy using average model is 0.981 learning rate is 0.709108\n",
      "After 2400 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.702017\n",
      "After 2500 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.702017\n",
      "After 2600 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.694997\n",
      "After 2700 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.694997\n",
      "After 2800 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.688047\n",
      "After 2900 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.688047\n",
      "After 3000 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.681166\n",
      "After 3100 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.681166\n",
      "After 3200 training step(s), validation accuracy using average model is 0.983 learning rate is 0.674355\n",
      "After 3300 training step(s), validation accuracy using average model is 0.983 learning rate is 0.667611\n",
      "After 3400 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.667611\n",
      "After 3500 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.660935\n",
      "After 3600 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.660935\n",
      "After 3700 training step(s), validation accuracy using average model is 0.9836 learning rate is 0.654326\n",
      "After 3800 training step(s), validation accuracy using average model is 0.9836 learning rate is 0.654326\n",
      "After 3900 training step(s), validation accuracy using average model is 0.9846 learning rate is 0.647782\n",
      "After 4000 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.647782\n",
      "After 4100 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.641305\n",
      "After 4200 training step(s), validation accuracy using average model is 0.9826 learning rate is 0.641305\n",
      "After 4300 training step(s), validation accuracy using average model is 0.9844 learning rate is 0.634892\n",
      "After 4400 training step(s), validation accuracy using average model is 0.9842 learning rate is 0.628543\n",
      "After 4500 training step(s), validation accuracy using average model is 0.9846 learning rate is 0.628543\n",
      "After 4600 training step(s), validation accuracy using average model is 0.983 learning rate is 0.622257\n",
      "After 4700 training step(s), validation accuracy using average model is 0.984 learning rate is 0.622257\n",
      "After 4800 training step(s), validation accuracy using average model is 0.9838 learning rate is 0.616035\n",
      "After 4900 training step(s), validation accuracy using average model is 0.9832 learning rate is 0.616035\n",
      "After 5000 training step(s), validation accuracy using average model is 0.9832 learning rate is 0.609874\n",
      "After 5100 training step(s), validation accuracy using average model is 0.9844 learning rate is 0.609874\n",
      "After 5200 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.603776\n",
      "After 5300 training step(s), validation accuracy using average model is 0.9836 learning rate is 0.603776\n",
      "After 5400 training step(s), validation accuracy using average model is 0.9844 learning rate is 0.597738\n",
      "After 5500 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.591761\n",
      "After 5600 training step(s), validation accuracy using average model is 0.9838 learning rate is 0.591761\n",
      "After 5700 training step(s), validation accuracy using average model is 0.9844 learning rate is 0.585843\n",
      "After 5800 training step(s), validation accuracy using average model is 0.9834 learning rate is 0.585843\n",
      "After 5900 training step(s), validation accuracy using average model is 0.9836 learning rate is 0.579984\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nkiQ12P8Pkcu67prqxvEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c2f8329b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9805\n"
     ]
    }
   ],
   "source": [
    "#batch_size 100 -> 300\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.swish)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.setBatchSize(300)\n",
    "mnistDataTrain.train(x,y,l2,mnist,decay_learning_rate=True,regularizer=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:30:15.851775Z",
     "start_time": "2018-02-07T01:29:26.382029Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9356 learning rate is 0.8\n",
      "After 200 training step(s), validation accuracy using average model is 0.9512 learning rate is 0.792\n",
      "After 300 training step(s), validation accuracy using average model is 0.9582 learning rate is 0.792\n",
      "After 400 training step(s), validation accuracy using average model is 0.962 learning rate is 0.78408\n",
      "After 500 training step(s), validation accuracy using average model is 0.9658 learning rate is 0.78408\n",
      "After 600 training step(s), validation accuracy using average model is 0.9678 learning rate is 0.776239\n",
      "After 700 training step(s), validation accuracy using average model is 0.97 learning rate is 0.776239\n",
      "After 800 training step(s), validation accuracy using average model is 0.97 learning rate is 0.768477\n",
      "After 900 training step(s), validation accuracy using average model is 0.9736 learning rate is 0.768477\n",
      "After 1000 training step(s), validation accuracy using average model is 0.976 learning rate is 0.760792\n",
      "After 1100 training step(s), validation accuracy using average model is 0.9744 learning rate is 0.753184\n",
      "After 1200 training step(s), validation accuracy using average model is 0.9748 learning rate is 0.753184\n",
      "After 1300 training step(s), validation accuracy using average model is 0.976 learning rate is 0.745652\n",
      "After 1400 training step(s), validation accuracy using average model is 0.9764 learning rate is 0.745652\n",
      "After 1500 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.738196\n",
      "After 1600 training step(s), validation accuracy using average model is 0.9776 learning rate is 0.738196\n",
      "After 1700 training step(s), validation accuracy using average model is 0.9778 learning rate is 0.730814\n",
      "After 1800 training step(s), validation accuracy using average model is 0.978 learning rate is 0.730814\n",
      "After 1900 training step(s), validation accuracy using average model is 0.9774 learning rate is 0.723506\n",
      "After 2000 training step(s), validation accuracy using average model is 0.978 learning rate is 0.723506\n",
      "After 2100 training step(s), validation accuracy using average model is 0.9778 learning rate is 0.716271\n",
      "After 2200 training step(s), validation accuracy using average model is 0.9792 learning rate is 0.709108\n",
      "After 2300 training step(s), validation accuracy using average model is 0.9798 learning rate is 0.709108\n",
      "After 2400 training step(s), validation accuracy using average model is 0.9786 learning rate is 0.702017\n",
      "After 2500 training step(s), validation accuracy using average model is 0.9774 learning rate is 0.702017\n",
      "After 2600 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.694997\n",
      "After 2700 training step(s), validation accuracy using average model is 0.9804 learning rate is 0.694997\n",
      "After 2800 training step(s), validation accuracy using average model is 0.9784 learning rate is 0.688047\n",
      "After 2900 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.688047\n",
      "After 3000 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.681166\n",
      "After 3100 training step(s), validation accuracy using average model is 0.9804 learning rate is 0.681166\n",
      "After 3200 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.674355\n",
      "After 3300 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.667611\n",
      "After 3400 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.667611\n",
      "After 3500 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.660935\n",
      "After 3600 training step(s), validation accuracy using average model is 0.981 learning rate is 0.660935\n",
      "After 3700 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.654326\n",
      "After 3800 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.654326\n",
      "After 3900 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.647782\n",
      "After 4000 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.647782\n",
      "After 4100 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.641305\n",
      "After 4200 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.641305\n",
      "After 4300 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.634892\n",
      "After 4400 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.628543\n",
      "After 4500 training step(s), validation accuracy using average model is 0.9826 learning rate is 0.628543\n",
      "After 4600 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.622257\n",
      "After 4700 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.622257\n",
      "After 4800 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.616035\n",
      "After 4900 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.616035\n",
      "After 5000 training step(s), validation accuracy using average model is 0.981 learning rate is 0.609874\n",
      "After 5100 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.609874\n",
      "After 5200 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.603776\n",
      "After 5300 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.603776\n",
      "After 5400 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.597738\n",
      "After 5500 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.591761\n",
      "After 5600 training step(s), validation accuracy using average model is 0.982 learning rate is 0.591761\n",
      "After 5700 training step(s), validation accuracy using average model is 0.982 learning rate is 0.585843\n",
      "After 5800 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.585843\n",
      "After 5900 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.579984\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c266d6d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9807\n"
     ]
    }
   ],
   "source": [
    "#batch_size 100 -> 300 \n",
    "mnistDataTrain = MnistDataTrain()\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu)\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.setBatchSize(300)\n",
    "mnistDataTrain.train(x,y,l2,mnist,decay_learning_rate=True,regularizer=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 改变初始值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:30:38.532256Z",
     "start_time": "2018-02-07T01:30:15.854007Z"
    },
    "run_control": {
     "marked": true
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.937 learning rate is 0.8\n",
      "After 200 training step(s), validation accuracy using average model is 0.9466 learning rate is 0.8\n",
      "After 300 training step(s), validation accuracy using average model is 0.9554 learning rate is 0.8\n",
      "After 400 training step(s), validation accuracy using average model is 0.9592 learning rate is 0.8\n",
      "After 500 training step(s), validation accuracy using average model is 0.9618 learning rate is 0.8\n",
      "After 600 training step(s), validation accuracy using average model is 0.9616 learning rate is 0.792\n",
      "After 700 training step(s), validation accuracy using average model is 0.9644 learning rate is 0.792\n",
      "After 800 training step(s), validation accuracy using average model is 0.9658 learning rate is 0.792\n",
      "After 900 training step(s), validation accuracy using average model is 0.969 learning rate is 0.792\n",
      "After 1000 training step(s), validation accuracy using average model is 0.9704 learning rate is 0.792\n",
      "After 1100 training step(s), validation accuracy using average model is 0.9734 learning rate is 0.78408\n",
      "After 1200 training step(s), validation accuracy using average model is 0.9736 learning rate is 0.78408\n",
      "After 1300 training step(s), validation accuracy using average model is 0.974 learning rate is 0.78408\n",
      "After 1400 training step(s), validation accuracy using average model is 0.9726 learning rate is 0.78408\n",
      "After 1500 training step(s), validation accuracy using average model is 0.9736 learning rate is 0.78408\n",
      "After 1600 training step(s), validation accuracy using average model is 0.9758 learning rate is 0.78408\n",
      "After 1700 training step(s), validation accuracy using average model is 0.9762 learning rate is 0.776239\n",
      "After 1800 training step(s), validation accuracy using average model is 0.9726 learning rate is 0.776239\n",
      "After 1900 training step(s), validation accuracy using average model is 0.9774 learning rate is 0.776239\n",
      "After 2000 training step(s), validation accuracy using average model is 0.976 learning rate is 0.776239\n",
      "After 2100 training step(s), validation accuracy using average model is 0.9776 learning rate is 0.776239\n",
      "After 2200 training step(s), validation accuracy using average model is 0.9742 learning rate is 0.768477\n",
      "After 2300 training step(s), validation accuracy using average model is 0.978 learning rate is 0.768477\n",
      "After 2400 training step(s), validation accuracy using average model is 0.9754 learning rate is 0.768477\n",
      "After 2500 training step(s), validation accuracy using average model is 0.978 learning rate is 0.768477\n",
      "After 2600 training step(s), validation accuracy using average model is 0.9764 learning rate is 0.768477\n",
      "After 2700 training step(s), validation accuracy using average model is 0.9786 learning rate is 0.768477\n",
      "After 2800 training step(s), validation accuracy using average model is 0.9778 learning rate is 0.760792\n",
      "After 2900 training step(s), validation accuracy using average model is 0.9778 learning rate is 0.760792\n",
      "After 3000 training step(s), validation accuracy using average model is 0.9778 learning rate is 0.760792\n",
      "After 3100 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.760792\n",
      "After 3200 training step(s), validation accuracy using average model is 0.9784 learning rate is 0.760792\n",
      "After 3300 training step(s), validation accuracy using average model is 0.9786 learning rate is 0.753184\n",
      "After 3400 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.753184\n",
      "After 3500 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.753184\n",
      "After 3600 training step(s), validation accuracy using average model is 0.9792 learning rate is 0.753184\n",
      "After 3700 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.753184\n",
      "After 3800 training step(s), validation accuracy using average model is 0.9792 learning rate is 0.753184\n",
      "After 3900 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.745652\n",
      "After 4000 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.745652\n",
      "After 4100 training step(s), validation accuracy using average model is 0.981 learning rate is 0.745652\n",
      "After 4200 training step(s), validation accuracy using average model is 0.9798 learning rate is 0.745652\n",
      "After 4300 training step(s), validation accuracy using average model is 0.9798 learning rate is 0.745652\n",
      "After 4400 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.738196\n",
      "After 4500 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.738196\n",
      "After 4600 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.738196\n",
      "After 4700 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.738196\n",
      "After 4800 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.738196\n",
      "After 4900 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.738196\n",
      "After 5000 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.730814\n",
      "After 5100 training step(s), validation accuracy using average model is 0.9794 learning rate is 0.730814\n",
      "After 5200 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.730814\n",
      "After 5300 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.730814\n",
      "After 5400 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.730814\n",
      "After 5500 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.723506\n",
      "After 5600 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.723506\n",
      "After 5700 training step(s), validation accuracy using average model is 0.981 learning rate is 0.723506\n",
      "After 5800 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.723506\n",
      "After 5900 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.723506\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQe\nM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ\n6rEz1zqAtpx77rm1c+fOtQ5DkiRprLvuuuvDVbW1SdsNk6zt3LmT6enptQ5DkiRprCQPNm3ra1BJ\nkqQeM1lraP/sLDsPHmTLgQPsPHiQ/bOzax2SJEnaBDbMa9Au7Z+dZfehQzx6/DgAD87NsfvQIQCu\n3bZtLUOTJEkbXKdP1pJckeRQksNJbljk+o8muS/J+5LcnmTHyLXHktw9/LqlyzjH2TMz83iiNu/R\n48fZMzOzRhFJkqTNorMna0nOAN4IvAg4AtyZ5Jaqum+k2XuBqap6NMm/AF4PfOvw2qeq6lldxbcc\nD83NLeu8JElSW7p8snYJcLiqZqrq08DNwFWjDarqjqp6dHj4buD8DuM5bdsnJpZ1XpIkqS1dJmvn\nAQ+PHB8ZnjuV7wb+eOT4iUmmk7w7yTcv9oEku4dtpo8ePbryiE9h7+QkZ285cajO3rKFvZOTnd1T\nkiQJul1gkEXO1aINk28HpoDLRk5vr6pHkkwC70zy/qr6qxM6q9oH7AOYmppatO82zC8i2DMzw0Nz\nc2yfmGDv5KSLCyRJUue6TNaOABeMHJ8PPLKwUZIXAnuAy6rq8UlgVfXI8M+ZJAeAZwN/tfDzq+Xa\nbdtMziRJ0qrr8jXoncBFSS5MchZwNXDCqs4kzwZ+Dbiyqj40cv6cJBPD788FvhoYXZggSZK0KXT2\nZK2qjiW5DrgVOAO4qaruTXIjMF1VtwA/DTwZ+L0kAA9V1ZXAM4BfS3KcQUL5ugWrSCVJkjaFVHU2\n1WtVTU1NlbVBJUnSepDkrqqaatLWclOSJEk9ZrImSZLUYyZrkiRJPWayJkmS1GMma5IkST1msiZJ\nktRjJmuSJEk9ZrImSZLUYyZrkiRJPWayJkmS1GMma5IkST1msiZJktRjJmuSJEk9ZrImSZLUYyZr\nkiRJPWayJkmS1GMma5IkST1msiZJktRjJmuSJEk9ZrImSZLUYyZrkiRJPWay1qL9s7PsPHiQLQcO\nsPPgQfbPzq51SJIkaZ07c60D2Cj2z86y+9AhHj1+HIAH5+bYfegQANdu27aWoUmSpHXMJ2st2TMz\n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\nTeMd16atDYeb9NN0dXBfNlH2le3pc+zWF5+sSVoV4xYztLVKto1FIG0tJGkS77g2be2F18ZTybYW\nXrTxM7W5cfRK9yts8z6rwQU0649z1iStmj7VVV2NRSBtzFlbzbl8q7XwYrVime+n67+jtu7TpJ+m\n9+p6EU5TfXqC16dYwAUGkjawvv2DO85Kf/m2teq3jeSmrYUXbbRpK4ltI5a27tNG4rhai3DmLfXf\ny2qvmF6tWNrSl0LuktS6NubPraaVzitczbl842Jpa55eGz9Tk1iWet26nHl649q0dZ8m/Yxr06SP\ntv4ex809bBJLk/mLbbRpK5a14pw1Seqx1ZzLN05b8/Ta+Jna2tC5jXmFbd2njcSxabLcxt/juLmH\nq7lierViWSsma5LUc21UvGjST5M42lh40cbP1FYS2yTecW3auk8bieNqLcKB1dsCp402bcWyVkzW\nJGmda2svvKb3WirJaiuWpvsIrjSJbWO/wrbu00bi2FayvFpPP9tIUFczlrXiAgNJ0oa1WhPG27rP\naqwGbctqrZLt24rdtrgaVJIkdW41tsBps81q/DxNmaxJkiT1mLVBJUmSNogN82QtyVHgwVW41bnA\nh1fhPpuRY9stx7c7jm23HN/uOLbdWmp8d1TV1iadbJhkbbUkmW762FLL49h2y/HtjmPbLce3O45t\nt9oaX1+DSpIk9ZjJmiRJUo+ZrC3fvrUOYANzbLvl+HbHse2W49sdx7ZbrYyvc9YkSZJ6zCdrkiRJ\nPWayJkmS1GMma5IkST1msiZJktRjJmuSJEk9ZrImSZLUYyZrkiRJPWayJkmS1GMma5IkST1msiZJ\nktRjJmuSJEk9ZrImSZLUYyZrkiRJPWayJkmS1GMma5IkST1msiZJktRjJmuSJEk9ZrImSZLUYyZr\nkiRJPWayJkmS1GNnrnUAbTn33HNr586dax2GJEnSWHfdddeHq2prk7YbJlnbuXMn09PTax2GJEnS\nWEkebNq209egSa5IcijJ4SQ3LHJ9e5I7krw3yfuSfOPItVcPP3coyTd0GackSVJfdZasJTkDeCPw\nYuBi4JokFy9o9uPAW6rq2cDVwC8PP3vx8PiLgSuAXx72t2ZmZ/dz8OBODhzYwsGDO5md3b/sNm30\n0bSNJEnaGLp8DXoJcLiqZgCS3AxcBdw30qaApw6//2zgkeH3VwE3V9Uc8H+SHB72d7DDeE9pdnY/\n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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c26c9f2e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9801\n"
     ]
    }
   ],
   "source": [
    "mnistDataTrain = MnistDataTrain()\n",
    "init_b = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu,init_b=init_b)\n",
    "init_b = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True,init_b=init_b)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist,decay_learning_rate=True,regularizer=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 滑动平均模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-02-07T01:31:03.284268Z",
     "start_time": "2018-02-07T01:30:38.534342Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 100 training step(s), validation accuracy using average model is 0.9174 learning rate is 0.8\n",
      "After 200 training step(s), validation accuracy using average model is 0.9388 learning rate is 0.8\n",
      "After 300 training step(s), validation accuracy using average model is 0.9548 learning rate is 0.8\n",
      "After 400 training step(s), validation accuracy using average model is 0.9584 learning rate is 0.8\n",
      "After 500 training step(s), validation accuracy using average model is 0.9616 learning rate is 0.8\n",
      "After 600 training step(s), validation accuracy using average model is 0.9592 learning rate is 0.792\n",
      "After 700 training step(s), validation accuracy using average model is 0.9686 learning rate is 0.792\n",
      "After 800 training step(s), validation accuracy using average model is 0.9706 learning rate is 0.792\n",
      "After 900 training step(s), validation accuracy using average model is 0.9698 learning rate is 0.792\n",
      "After 1000 training step(s), validation accuracy using average model is 0.9708 learning rate is 0.792\n",
      "After 1100 training step(s), validation accuracy using average model is 0.9736 learning rate is 0.78408\n",
      "After 1200 training step(s), validation accuracy using average model is 0.9746 learning rate is 0.78408\n",
      "After 1300 training step(s), validation accuracy using average model is 0.9746 learning rate is 0.78408\n",
      "After 1400 training step(s), validation accuracy using average model is 0.9742 learning rate is 0.78408\n",
      "After 1500 training step(s), validation accuracy using average model is 0.9742 learning rate is 0.78408\n",
      "After 1600 training step(s), validation accuracy using average model is 0.9754 learning rate is 0.78408\n",
      "After 1700 training step(s), validation accuracy using average model is 0.9758 learning rate is 0.776239\n",
      "After 1800 training step(s), validation accuracy using average model is 0.977 learning rate is 0.776239\n",
      "After 1900 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.776239\n",
      "After 2000 training step(s), validation accuracy using average model is 0.9744 learning rate is 0.776239\n",
      "After 2100 training step(s), validation accuracy using average model is 0.976 learning rate is 0.776239\n",
      "After 2200 training step(s), validation accuracy using average model is 0.9782 learning rate is 0.768477\n",
      "After 2300 training step(s), validation accuracy using average model is 0.9774 learning rate is 0.768477\n",
      "After 2400 training step(s), validation accuracy using average model is 0.9788 learning rate is 0.768477\n",
      "After 2500 training step(s), validation accuracy using average model is 0.979 learning rate is 0.768477\n",
      "After 2600 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.768477\n",
      "After 2700 training step(s), validation accuracy using average model is 0.9804 learning rate is 0.768477\n",
      "After 2800 training step(s), validation accuracy using average model is 0.98 learning rate is 0.760792\n",
      "After 2900 training step(s), validation accuracy using average model is 0.9806 learning rate is 0.760792\n",
      "After 3000 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.760792\n",
      "After 3100 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.760792\n",
      "After 3200 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.760792\n",
      "After 3300 training step(s), validation accuracy using average model is 0.9798 learning rate is 0.753184\n",
      "After 3400 training step(s), validation accuracy using average model is 0.981 learning rate is 0.753184\n",
      "After 3500 training step(s), validation accuracy using average model is 0.9808 learning rate is 0.753184\n",
      "After 3600 training step(s), validation accuracy using average model is 0.9796 learning rate is 0.753184\n",
      "After 3700 training step(s), validation accuracy using average model is 0.98 learning rate is 0.753184\n",
      "After 3800 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.753184\n",
      "After 3900 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.745652\n",
      "After 4000 training step(s), validation accuracy using average model is 0.9826 learning rate is 0.745652\n",
      "After 4100 training step(s), validation accuracy using average model is 0.9812 learning rate is 0.745652\n",
      "After 4200 training step(s), validation accuracy using average model is 0.9816 learning rate is 0.745652\n",
      "After 4300 training step(s), validation accuracy using average model is 0.9832 learning rate is 0.745652\n",
      "After 4400 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.738196\n",
      "After 4500 training step(s), validation accuracy using average model is 0.9834 learning rate is 0.738196\n",
      "After 4600 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.738196\n",
      "After 4700 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.738196\n",
      "After 4800 training step(s), validation accuracy using average model is 0.9834 learning rate is 0.738196\n",
      "After 4900 training step(s), validation accuracy using average model is 0.9802 learning rate is 0.738196\n",
      "After 5000 training step(s), validation accuracy using average model is 0.9814 learning rate is 0.730814\n",
      "After 5100 training step(s), validation accuracy using average model is 0.981 learning rate is 0.730814\n",
      "After 5200 training step(s), validation accuracy using average model is 0.9826 learning rate is 0.730814\n",
      "After 5300 training step(s), validation accuracy using average model is 0.9838 learning rate is 0.730814\n",
      "After 5400 training step(s), validation accuracy using average model is 0.9832 learning rate is 0.730814\n",
      "After 5500 training step(s), validation accuracy using average model is 0.9818 learning rate is 0.723506\n",
      "After 5600 training step(s), validation accuracy using average model is 0.9834 learning rate is 0.723506\n",
      "After 5700 training step(s), validation accuracy using average model is 0.9824 learning rate is 0.723506\n",
      "After 5800 training step(s), validation accuracy using average model is 0.9828 learning rate is 0.723506\n",
      "After 5900 training step(s), validation accuracy using average model is 0.9822 learning rate is 0.723506\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmsAAAHjCAYAAAB8R1jMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XuUZldd5//3pxNSEK6BtD1jku5O\nY2wJykWKSHSEcJPAYCLCSGI7grDscSTgjZmBaS9MnB4cYAQveGkVFaYlE/MTJ6NIzIS0jDONpCIB\nTDINTZlLEy0auRMsJunv74/nFDxdXV3P6a7zVJ2qer/WqpU65+znnG/tZFV9s/fZ+5uqQpIkSf20\nYaUDkCRJ0vGZrEmSJPWYyZokSVKPmaxJkiT1mMmaJElSj5msSZIk9ZjJmiRJUo+ZrEmSJPWYyZok\nSVKPnbrSAXTlzDPPrK1bt650GJIkSSPdfPPNn6qqjW3arplkbevWrUxNTa10GJIkSSMlubNtW6dB\nJUmSesxkTZKkEWb2zrB/6372bdjH/q37mdk7s6qf0xX7ZXmYrEmS1qwu/sjP7J3hwM4DzN45CwWz\nd85yYOeBzhOG5XpOV9rE26f+X80Jn8maJKlTbf4oLscfzrZ/5EfFMr1rmiP3Hjnq3JF7jzC9a7rT\nn6fNc5bTUvulqySrbb8sFu9qS4TnM1mTJHWm7WjLcvzhbJtkjYpl9q7ZBe8/d76rn2fUc5ZTF/3S\nRZLV5jlt4u0qlpVisiZJC+jql3Zff/mfrC5Gobr6w9nFH/k2sUxsnljwPnPnu/p5Rj2nreUa5RsV\nbxdJVpvntIm3q1hWismapHVpOaZMlvNdm75MK7b5o9jFH86u/si3iWXb7m1sOP3oP5cbTt/Att3b\nOvt52jynja6mfrvoly6SrDbPaRNvV7GslLEma0kuTnIgycEkr1ng+pYkNyT5cJJ9Sc4euvaGJLcm\nuT3JLyfJOGOVtDp0kbh0NWUyShf3We5pxcX6rovRlrZtRj2rqz/ybWLZtGMT2/dsZ2LLBAQmtkyw\nfc92Nu3Y1NnP0+Y5c5b676irRHdUvF0kWW37ZVS8XcWyUsaWrCU5BXgr8FzgfODyJOfPa/Ym4O1V\n9TjgSuD1zWe/HfgO4HHANwNPBp42rlgl9cNSk6y2bbqYMmkTbxf3We5pxcX6rovRlrZtRj2rqz/y\n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\ngCQ7k0wlmTp8+HCLkMZrZu8M+7fuZ9+Gfezfup+ZvTMrHZIkSVrl2oysAfw9gyoGLwSeCdze4jNZ\n4FzNO3418LQkHwSeBnyCQf3RHwXeXVV3s4iq2lNVk1U1uXHjxhYhjc/M3hkO7DzA7J2zUDB75ywH\ndh4wYZMkSUty3K07knwjcBlwOfAPwH9jsHXH01ve+xBwztDx2cA9ww2q6h7ge5vnPQR4YVV9LsmF\nwHcm+VHgIcBpSb5YVccsUuiL6V3THLn3yFHnjtx7hOld02zasWmFopIkSavdYvus/V/gfwHfXVUH\nAZL8xAnc+ybgvCTnMhgxuwz4/uEGSc4EPl1VR4DXAm8DqKodQ21eCkz2OVEDmL1r9oTOS5IktbHY\nNOgLGUx/3pjkt5I8k4WnNhdUVfcBVwDXMZg2vbqqbk1y5VD5qouAA0k+ymAxwe6T+Bl6YWLzwgtk\nj3dekiSpjVTNf41sXoPkwcD3MJgOfQaDlaDvqqperdKcnJysqampFXv+3Dtrw1OhG07fwPY9250G\nlSRJR0lyc1VNtmnbZjXol6pqb1U9n8F7Z7cAvZ6SXAmbdmxi+57tTGyZgMDElgkTNUmStGQjR9ZW\ni5UeWZMkSWqr05E1SZIkrRyTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ6jGT\nNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQe\nM1mTJEnqMZM1SZKkHjNZkyRJ6jGTNUmSpB4zWZMkSeoxkzVJkqQeM1mTJEnqMZM1SZKkHhtrspbk\n4iQHkhxM8poFrm9JckOSDyfZl+Ts5vwTkuxPcmtz7cXjjFOSJKmvxpasJTkFeCvwXOB84PIk589r\n9ibg7VX1OOBK4PXN+XuBH6yqxwIXA29J8ohxxSpJktRX4xxZuwA4WFXTVfUV4Crg0nltzgduaL6/\nce56VX20qj7WfH8P8Elg4xhjlSRJ6qVxJmtnAXcPHR9qzg37EPDC5vsXAA9N8qjhBkkuAE4DPj7/\nAUl2JplKMnX48OHOApckSeqLcSZrWeBczTt+NfC0JB8EngZ8ArjvqzdI/inwDuCHqurIMTer2lNV\nk1U1uXGjA2+SJGntOXWM9z4EnDN0fDZwz3CDZorzewGSPAR4YVV9rjl+GPCnwE9X1fvHGGcrM3tn\n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\n7S5LMpHkXOA84ANjjHVR27btZsOG0486t2HD6Wzbtrt1my7u0baNJElaO8aWrFXVfcAVwHXA7QxW\nfd6a5MoklzTNfgr44SQfAt4JvLQGbmUw4nYb8B7gFVV1/7hiHWXTph1s376HiYktQJiY2ML27XuO\neqF/VJsu7tG2jSRJWjtSdcyrYKvS5ORkuSmuJElaDZLcXFWTbdpaG1SSJKnHTNYkSZJ6zGRNkiSp\nx0zWJEmSesxkbY3qU51Sa5lKknTyxlkbVCukT3VKrWUqSdLSOLK2BvWpTqm1TCVJWhqTtTWoT3VK\nrWUqSdLSmKytQX2qU2otU0mSlsZkbQ3qU51Sa5lKkrQ0JmtrUJ/qlFrLVJKkpbE2qCRJ0jKzNqgk\nSdIaYbImSZLUYyZrkiRJPWayJkmS1GMma1pxfapTaq1TSVLfWBtUK6pPdUqtdSpJ6iNH1rSi+lSn\n1FqnkqQ+MlnTiupTnVJrnUqS+shkTSuqT3VKrXUqSeqjkclaktOT/EyS32qOz0vy/PGHpvWgT3VK\nrXUqSeqjNiNrvwvMAhc2x4eA/9jm5kkuTnIgycEkr1ng+puT3NJ8fTTJZ4euvSHJrUluT/LLSdLm\nmVpd+lSn1FqnkqQ+GlkbNMlUVU0m+WBVPbE596GqevyIz50CfBR4NoME7ybg8qq67TjtXwk8sape\nluTbgTcCT20u/yXw2qrad7znWRtUkiStFl3XBv1KkgcB1dz80QxG2ka5ADhYVdNV9RXgKuDSRdpf\nDryz+b6ABwKnARPAA4CZFs+UJElaU9oka68D3gOck2QvcAPw71p87izg7qHjQ825YyTZApwLvBeg\nqvYDNwJ/13xdV1W3L/C5nUmmkkwdPny4RUiSJEmry8hNcavqz5PcDDwFCPBjVfWpFvde6B2z4825\nXgZcU1X3AyT5BuAxwNnN9euTPLWq3jcvtj3AHhhMg7aISZIkaVVpsxr0hqr6h6r606r6k6r6VJIb\nWtz7EHDO0PHZwD3HaXsZX5sCBXgB8P6q+mJVfRH4MwbJoiRJ0rpy3GQtyQOTPBI4M8kZSR7ZfG0F\nvr7FvW8CzktybpLTGCRk1y7wnO3AGcD+odN3AU9LcmqSBwBPA46ZBpX6arlqkFrLVJLWvsWmQf8V\n8OMMErOb+dq05ueBt466cVXdl+QK4DrgFOBtVXVrkiuBqaqaS9wuB66qo5elXgM8A/gIg6nT91TV\n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\nmq+PJvnsvOsPS/KJJL96knFKkiStam02xV1IRjZITgHeCjwbOATclOTaqrptrk1V/cRQ+1cCT5x3\nm58H/uIkY5QkSVr1TnZkrc1OuhcAB6tquqq+AlwFXLpI+8uBd84dJHkSsInBO3KSJEnr0nGTtSRf\nSPL5Bb6+AHx9i3ufBQxv+XGoObfQs7YA5wLvbY43AP8F+DeLPSDJziRTSaYOHz7cIiRJko7Wpzql\n1jvVQo47DVpVD13ivReaKj3eiNxlwDVVNbd/248C766qu5Pjz7hW1R5gDwxWgy4hVknSOtSnOqXW\nO9XxnOw0aBuHgHOGjs8G7jlO28sYmgIFLgSuSHIH8CbgB5P8wjiClCStX9PTu76a+Mw5cuRepqd3\ntW7TxT26bKO152QXGLRxE3BeknOBTzBIyL5/fqMk24EzgP1z56pqx9D1lwKTVXXMalJJkpaiT3VK\nrXeq4xnbyFpV3QdcAVzHoOLB1VV1a5Irk1wy1PRy4KoatTuvJEkd61OdUuud6njGOQ1KVb27qr6x\nqh5dVbubcz9bVdcOtXndYqNmVfV7VXXFOOOUJK1PfapTar1THc9YkzVJkvqsT3VKrXeq4xlZG3S1\nsDaoJElaLU6kNqgja5IkST1msiZJktRjJmuSJEk9ZrImSdIa0qfSV5bG6sY4N8WVJEnLqE+lryyN\n1R1H1iRJWiP6VPrK0ljdMVmTJGmN6FPpK0tjdcdkTZKkNaJPpa8sjdUdkzVJktaIPpW+sjRWd0zW\nJElaI/pU+srSWN2x3JQkSdIys9yUJEnSGmGyJkmS1GMma5IkST1msiZJklZMn0pf9bU8luWmJEnS\niuhT6as+l8dyZE2SJK2IPpW+6nN5LJM1SZK0IvpU+qrP5bFM1iRJ0oroU+mrPpfHGmuyluTiJAeS\nHEzymgWuvznJLc3XR5N8tjn/hCT7k9ya5MNJXjzOOCVJ0vLrU+mrPpfHGtsCgySnAG8Fng0cAm5K\ncm1V3TbXpqp+Yqj9K4EnNof3Aj9YVR9L8vXAzUmuq6rPjiteSZK0vOZe3J+e3sXs7F1MTGxm27bd\nx5S1Wmqbrp6zUsZWbirJhcDrquo5zfFrAarq9cdp/3+An6uq6xe49iHgRVX1seM9z3JTkiRptehL\nuamzgLuHjg81546RZAtwLvDeBa5dAJwGfHyBazuTTCWZOnz4cCdBS5Ik9ck491nLAueON4x3GXBN\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c271f3cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 6000 training step(s), test accuracy using average model is 0.9811\n"
     ]
    }
   ],
   "source": [
    "# 使模型在测试数据更健壮\n",
    "mnistDataTrain = MnistDataTrain()\n",
    "init_b = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))\n",
    "l1 = mnistDataTrain.add_layer(x, INPUT_NODE, LAYER1_NODE, tf.nn.relu,init_b=init_b)\n",
    "init_b = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))\n",
    "l2 = mnistDataTrain.add_layer(l1, LAYER1_NODE, OUTPUT_NODE, tf.nn.softmax,L2=True,init_b=init_b)\n",
    "mnistDataTrain.setTraningStep(6000)\n",
    "mnistDataTrain.train(x,y,l2,mnist,decay_learning_rate=True,regularizer=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 使用所有优化的正确率： 0.9811 \n",
    "2. 改变初始值的正确率： 0.9801\n",
    "3. 改变batch_size的正确率： 0.9807\n",
    "4. 使用指数衰减学习率： 0.9818\n",
    "5. 使用L2 正则项的正确率： 0.9823\n",
    "6. 增加迭代次数的正确率：0.9801\n",
    "7. 不用隐藏层的正确率： 0.921\n",
    "8. 不用激活函数的正确率：0.9108"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用滑动平均模型，指数衰减的学习率和使用正则化带来的正确率的提升并不是很明显"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "nbTranslate": {
   "displayLangs": [
    "*"
   ],
   "hotkey": "alt-t",
   "langInMainMenu": true,
   "sourceLang": "en",
   "targetLang": "fr",
   "useGoogleTranslate": true
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "oldHeight": 122,
   "position": {
    "height": "40px",
    "left": "1052px",
    "right": "20px",
    "top": "120px",
    "width": "250px"
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "varInspector_section_display": "none",
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
